The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Релиз интерпретатора языка программирования Perl 5.20"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от opennews (??) on 27-Май-14, 19:31 
После года разработки представлена (http://www.nntp.perl.org/group/perl.perl5.porters/2014/05/ms...) новая стабильная ветка языка программирования - Perl 5.18 (https://metacpan.org/release/RJBS/perl-5.20.0/). В рамках подготовки нового выпуска было изменено около 470 тыс. строк кода, изменения затронули 2900 файлов, в разработке приняли участие 124 разработчика.

Ветка 5.20 выпущена в соответствии с утверждённым четыре года назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.20.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.20.0. Одновременно с выходом Perl 5.20 прекращена поддержка ветки 5.16, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.21, на базе которой в мае 2015 года будет сформирован стабильный релиз Perl 5.22.

Ключевые улучшения (http://search.cpan.org/~rjbs/perl-5.20.0/pod/perldelta.pod), добавленные в Perl 5.20:

-  Экспериментальная поддержка сигнатур функций (http://search.cpan.org/~rjbs/perl-5.20.0/pod/perlsub.pod#Sig...), позволяющих явно определить перечень переменных, используемых в функции и автоматизировать операции проверки и  присвоения значений из массива входящих параметров.  Для активации поддержки сигнатур функций необходимо указать директиву "use feature 'signatures'"; Например, ранее используемый код:

<font color="#461b7e">
    sub foo {
        die "Too many arguments for subroutine" unless @_ <= 2;
        die "Too few arguments for subroutine" unless @_ >= 2;
        my($left, $right) = @_;
        return $left + $right;
    }
</font>


при использовании сигнатур может быть заменён на:

<font color="#461b7e">
    sub foo ($left, $right) {
        return $left + $right;
    }
</font>


При вызове foo с числом аргументов, отличным от двух, интерпретатор выведет ошибку. Синтаксис сигнатур также позволяет указывать необязательные аргументы и задавать значения, используемые  по умолчанию в случае отсутствия аргумента. Например, указав "sub foo ($left, $right = 0)" второй аргумент становится необязательным. В операции присваивания можно указать произвольное выражения, в том числе с использованием других переменных из списка или глобальных переменных. Указание вместо переменной хэша или массива (например, "sub foo ($left, @right)") приведёт к возможности передачи одного и более аргументов.


В списке также поддерживается специальная переменная "$", которая позволяет игнорировать часть аргументов, например, "sub foo ($left, $, $right)" позволит выполнить копирование в переменные только первого и третьего аргумента, при этом в функцию необходимо передать ровно три аргумента. Возможность обращения к параметрам через массив "@_" сохраняется, поэтому второй аргумент можно получить как значение "$_[1]";

-  Для определения прототипов функций (http://search.cpan.org/~rjbs/perl-5.20.0/pod/perlsub.pod#Pro...), предоставляющих средства для проверки аргументов на этапе компиляции, а не в процессе выполнения, обеспечена поддержка  атрибута ":prototype", например, теперь можно указать "sub foo :prototype($$);" вместо "sub foo ($$);". "$$" подразумевает вызов с двумя аргументами. Для определения типа аргумента могут использоваться такие символы, как "$" (переменная), "@" (массив), "+" (ссылка на массив или хэш), "*" (файловый десктиптор). Для отделения обязательных аргументов от опциональных используется знак ";". Для прототипов функций допускается указание сигнатур, например, "sub foo :prototype($$) ($left, $right)";

-  Функция rand() переведена на использование для всех платформ более качественного последовательного генератора псевдослучайных чисел drand48(). Ранее для 48-битовый генератор  псевдослучайных чисел использовался только для POSIX-систем, таких как Linux, а в Windows применялась менее безопасная 15-битная реализация;


-  Новый синтаксис для операции разделения хэшей и массивов (slice (http://search.cpan.org/~rjbs/perl-5.20.0/pod/perldata.pod#Ke...)) - %hash{...} и %array[...], при использовании которого возвращается список из пар ключ/значение или номер/значение;

-  Добавлена экспериментальная операция постфиксного разыменования (postderef). Например, операция "$sref->$*" эквивалентна "${ $sref }", "$aref->@*" аналогична "@{ $aref }", а "$href->%{ ... }" можно использовать вместо "%$href{ ... }". Для активации поддержки необходимо указать директиву "use feature 'postderef_qq'";
-  Поддержка Unicode 6.3 (http://www.unicode.org/versions/Unicode6.3.0). Для регулярных выражений добавлена поддержка маски "\p{Unicode}", которая является синонимом "\p{Any}" и срабатывает для кодов символов в диапазоне 0 - 0x10FFFF.-  Директива "use locale" теперь может применяться с локалями UTF-8 (ранее поддерживались только однобайтные локали). Добавлена опция "-DL" для отслеживания настроек локали в процессе запуска интерпретатора;

-  Улучшена работа на 64-разрядных платформах. Внутренние функции работы с массивами переведены на использование 64-разрядных смещений, что позволяет создавать массивы, содержащие более 2^31 элементов. Движок регулярных выражений теперь может работать со строками длиннее
2^31 символов. Функции PerlIO_get_bufsiz, PerlIO_get_cnt, PerlIO_set_cnt и PerlIO_set_ptrcnt переведены с типа int на тип SSize_t;

URL: http://perlnews.org/2014/05/perl-5-20-released/
Новость: http://www.opennet.me/opennews/art.shtml?num=39865

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Релиз интерпретатора языка программирования Perl 5.20"  +12 +/
Сообщение от Аноним (??) on 27-Май-14, 19:31 
> Экспериментальная поддержка сигнатур функций

Шел 2014-й год.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Релиз интерпретатора языка программирования Perl 5.20"  –10 +/
Сообщение от Аноним (??) on 27-Май-14, 19:44 
Perl застраял в 20 веке
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Релиз интерпретатора языка программирования Perl 5.20"  +3 +/
Сообщение от свободный бздун on 27-Май-14, 19:49 
Молодой человек, вы ничего не понимаете! Это же — классика!
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Релиз интерпретатора языка программирования Perl 5.20"  +6 +/
Сообщение от Anonymus on 27-Май-14, 20:23 
Я тоже не пойму зачем портить классику. Придумали же вон, LLVM, любой школьнег теперь может любой язык себе замастырить.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

27. "Релиз интерпретатора языка программирования Perl 5.20"  +7 +/
Сообщение от kurokaze (ok) on 27-Май-14, 23:53 
Ты его просто не с той стороны применял, вот он и "застраял"
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Аноним (??) on 27-Май-14, 20:06 
>Директива "use locale" теперь может применяться с локалями UTF-8 (ранее поддерживались только однобайтные локали)

Это круче в 2014-м

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

30. "Релиз интерпретатора языка программирования Perl 5.20"  +4 +/
Сообщение от vsespb (ok) on 28-Май-14, 00:06 
Не знаете, наверное, о чём говорите. Эта use locale на практике не используется обычно. И её поддержка к поддержке unicode и всего хорошего, что с ним связано, не имеет отношения. Так же почитайте внимательно что именно с ней сделали https://metacpan.org/pod/distribution/perl/pod/perldelta.pod... (если perl знаете)
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Релиз интерпретатора языка программирования Perl 5.20"  +8 +/
Сообщение от angra (ok) on 27-Май-14, 20:30 
И наконец-то сжалились над товарищами с квадратно-гнездовым мышлением, приходящими с других ЯП, и запилили для них костыль. Осталось добавить в ядро какую-нибудь надстройку над ООП вроде moo, а то дефолтное ООП беднягам тоже мозг выносит.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

10. "Релиз интерпретатора языка программирования Perl 5.20"  +6 +/
Сообщение от freehck email(ok) on 27-Май-14, 20:38 
В общем-то да, это ведь всего-то лишь синтаксический сахар. К тому же, парсинг параметров при помощи @_ на мой взгляд есть штука куда более гибкая, чем может то предложить сигнатурная модель объявления функции.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

39. "Релиз интерпретатора языка программирования Perl 5.20"  +3 +/
Сообщение от еще 1 аноним on 28-Май-14, 09:08 
И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1 (понятно что в откомпиленном те же 4 строчки и остались). На мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов - пишите, никто вам не запрещает
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

45. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Pilat (ok) on 28-Май-14, 12:31 
> И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1
> (понятно что в откомпиленном те же 4 строчки и остались). На
> мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи
> ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса
> и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов
> - пишите, никто вам не запрещает

Всё равно новая версия перла станет актуальной только через несколько лет - когда до дистрибутивов дойдёт, так что вопрос академический. Да и надо как-то решить вопрос с объявлением параметров с помощью старого Function::Parameters, MooseX::Declare и н ового метода и понять на практике что будет при смешивании этих стилей, что будет видно в отладчиках и профайлерах, что будет делать с тавими функциями EPIC в Eclipse, как будет форматировать perltidy, и куча вопросов которые сходу не приходят в голову. Вообще нововведение выглядит очень хорошим, странно что так долго его вводили.

Не хватает Best Practice как руководства по новым возможностям перла, что рекомендуется использовать, что нет.

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

65. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 31-Май-14, 14:50 
>> И более запутанная. Пример наглядно показывает как 4 строчки вырождаются в 1
>> (понятно что в откомпиленном те же 4 строчки и остались). На
>> мой взгляд сигнатурный способ позволяет уже на этапе написания избежать кучи
>> ошибок. Но заметьте, никто старый способ не выпилил, поэтому дело вкуса
>> и необходимости. Хочется писать по-старому / нужно парсить переменное количество аргументов
>> - пишите, никто вам не запрещает
> Всё равно новая версия перла станет актуальной только через несколько лет -
> когда до дистрибутивов дойдёт, так что вопрос академический.

Думаю, будет уже в OpenBSD 5.6 (ноябрь 2014) или 5.7 (май 2015). Эта ОС едва ли не больше прочих полагается на Perl; в первую очередь — в подсистеме управлении пакетами.

Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

46. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Q2W on 28-Май-14, 12:45 
Вообще-то пример из статьи плохой, т.к. используй прототипы уже 100 лет, как можно написать так:
sub foo($$)
{
    my($left, $right) = @_;
    return $left + $right;
}

А если экономить на кол-ве строчек, так вообще можно так:
sub foo($$){shift+shift}

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

66. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 31-Май-14, 14:52 
> Вообще-то пример из статьи плохой, т.к. используй прототипы уже 100 лет, как
> можно написать так:
> sub foo($$)
> {
>     my($left, $right) = @_;
>     return $left + $right;
> }
> А если экономить на кол-ве строчек, так вообще можно так:
> sub foo($$){shift+shift}

Прототипы были придуманы для другого: не для экономии или удобства, а для возможности создания функциональных аналогов встроенным функциям Perl вроде push().

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

51. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от TheAthlete email on 28-Май-14, 13:55 
На самом деле старый способ не выпилили, т.к. парсер не может выявить использование @_ в подпрограммах на этапе компиляции, т.к. некоторые части программы могут определяться только на этапе исполнения. Например, при выполнении eval кода, содержащегося в строке:

sub foo {
    eval 'say for @_';
}

Dave Mitchell также привёл пример с выполнением кода в регулярных выражениях:


$pat = qr/(?{ print "[$_]\n" for @_ })/;
sub f($str, $pat) { $str =~ $pat }

Поэтому пока переменная @_ по-прежнему доступна в функциях с сигнатурой.

См. http://pragmaticperl.com/issues/13/pragmaticperl-13-сигнатура-функции-в-perl-5.20.html#issue-переменная-_

Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

11. "Релиз интерпретатора языка программирования Perl 5.20"  –7 +/
Сообщение от Аноним (??) on 27-Май-14, 20:39 
Вам охота в каждой функции вручную проверять количество аргументов, присваивать значения по умолчанию и т. д.? Вам заняться больше нечем? Кроме того, при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции, а не отлавливать ошибки в редко используемых кусках кода во время исполнения.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Релиз интерпретатора языка программирования Perl 5.20"  +2 +/
Сообщение от www2 (??) on 27-Май-14, 20:49 
>Кроме того, при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции, а не отлавливать ошибки в редко используемых кусках кода во время исполнения.

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

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

18. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 27-Май-14, 21:59 
Не помню почему, но perlcritic на них ругается.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

22. "Релиз интерпретатора языка программирования Perl 5.20"  +2 +/
Сообщение от angra (ok) on 27-Май-14, 23:09 
В доке их тоже рекомендуют не использовать и даже объясняют причины. В первую очередь из-за того, что многие их используют не по назначению, а для этой самой дурацкой проверки количества аргументов.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

68. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от www2 (??) on 06-Июн-14, 16:58 
> В доке их тоже рекомендуют не использовать и даже объясняют причины. В
> первую очередь из-за того, что многие их используют не по назначению,
> а для этой самой дурацкой проверки количества аргументов.

Почему же дурацкой? Как perlcritic аргументирует свою неприязнь к такой проверке?

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

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

15. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от angra (ok) on 27-Май-14, 21:24 
>вручную проверять количество аргументов

Не занимаюсь подобными глупостями.

>присваивать значения по умолчанию

Очень редко нужно

>при наличии явной сигнатуры можно проверять правильность вызова функций на этапе трансляции

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

Единственное, что мне слегка надоедает писать, это строки типа
my $self=shift;
Я даже знаю несколько способов как этого избежать, но применять их мне еще более лениво :)

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

17. "Релиз интерпретатора языка программирования Perl 5.20"  +3 +/
Сообщение от АнониМ (ok) on 27-Май-14, 21:58 
>Шел 2014-й год.

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

все нововведения окромя возможно copy-on-write со строками в 20 версии имно ниочем.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Релиз интерпретатора языка программирования Perl 5.20"  –5 +/
Сообщение от Аноним (??) on 27-Май-14, 20:07 
А когда же Perl 6 !?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Релиз интерпретатора языка программирования Perl 5.20"  +4 +/
Сообщение от Аноним (??) on 27-Май-14, 20:17 
Когда Perl 6.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

13. "Релиз интерпретатора языка программирования Perl 5.20"  +3 +/
Сообщение от Аноним (??) on 27-Май-14, 21:01 
Это что же, не раньше, чем Perl 6?
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "Релиз интерпретатора языка программирования Perl 5.20"  –2 +/
Сообщение от angra (ok) on 27-Май-14, 20:32 
Скорее всего так и останется чисто исследовательским проектом без практической реализации.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

16. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Угу on 27-Май-14, 21:37 
В современном мире программное обеспечение становится достаточно большим и сложным, поэтому старые традиции программописательства стали неприменимы. Если раньше каждый второй анонс выхода новой версии софта начинался словами "Полностью переписана реализация ..." и при этом утаивалась причина (NIH-синдром кого-то из программистов). То сейчас уже многим стало понятно, что в современном мире такой подход неприемлем - рулит эволюционный подход. Части программных комплексов переписываются, но не внезапно, а дозировано, контролируемо, небольшими порциями, чтобы не только иметь гарантию, что в любой момент продукт работает, но и четко представлять насколько надежно он работает.

Локомотивом и самым ярким представителем в этом движении является ядро Linux - фаворит и оплот свободного ПО. Хотя, конечно, не они первые осознали необходимость данного подхода, но они своевременно осознали его необходимость и востребованность (а ведь даже сейчас еще многие не до конца осознают это). В результате такого нового подхода к разработке, отвечающего современным требованиям к скорости развития и сохранения стабильности ПО, уже нет необходимости в смене первой циферки версии (например, в PHP 5.4 эволюционно реализовали все, что планировали сделать в php6, в первую очередь - поддержку Unicode, но циферку не стали менять). Хотя, чисто по привычке ее иногда меняют (Linux 3.x.x), но четко осознают, что такое изменение чисто косметическое и не отражает внутренних изменений в продукте.

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

Да здравствуют эволюционные изменения, которые гарантируют постепенное, но неудержимое движение к светлому будущему!

Ура, Товарищи!!!

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

33. "Релиз интерпретатора языка программирования Perl 5.20"  +2 +/
Сообщение от Аноним (??) on 28-Май-14, 04:08 
Запор прямой кишки лечится, не надо так мучиться как ты тут :)
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

28. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от kurokaze (ok) on 27-Май-14, 23:58 
> А когда же Perl 6 !?

# tail /usr/portage/dev-lang/rakudo/ChangeLog

[...]
*rakudo-2009.12 (08 Jan 2010)
  08 Jan 2010; Patrick Lauer <patrick@gentoo.org> +rakudo-2009.12.ebuild

4 года уже какбы

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

38. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от angra (ok) on 28-Май-14, 09:05 
Вот только для практического применения rakudo, как впрочем и остальные реализации, не годится - тормозит просто дичайше. Они с самого начала оправдывались, что сначала сделаем все фичи, а уже потом оптимизации. То, что скорость надо будет поднять минимум на три порядка их не смущало. Последние пару лет оптимизируют. У них даже получилось ускорится на порядок, звучит круто, но только пока не вспоминаешь, что perl5 все еще на два порядка быстрее. Так что в для практиков perl6 скорее всего так и не появится.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

48. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от kurokaze (ok) on 28-Май-14, 12:51 
> Вот только для практического применения rakudo, как впрочем и остальные реализации, не
> годится - тормозит просто дичайше.

И чего? Жабка тоже тормозит по сравнению с нативом, а используют.

> два порядка быстрее. Так что в для практиков perl6 скорее всего так и не появится.

Тут дело имхо не в скокрости, а в том что народу хватает того что есть. Когда не хватает на скорость плюют.
Вот на руби жалуются что тормозит, а я например (на локальном core-i7 для своих задач) этого не очущаю


Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

52. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от TheAthlete email on 28-Май-14, 14:04 
Где вы такое увидели?
На сайте rakudo.org:

Announce: Rakudo Star Release 2014.04

This is the first Rakudo Star release with support for the MoarVM backend (all module tests pass on supported platforms) along with experimental support for the JVM backend (some module tests fail).

Т.е. они задеплоиили поддержку в качестве бэкэнда MoarVM и экспериментальную поддержку JVM. По-моему неплохо

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

14. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от rob pike on 27-Май-14, 21:02 
>The use of interpreter-based threads in perl is officially discouraged.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

19. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 27-Май-14, 22:28 
Да ладно, вам, зубоскалы!

Сигнатуры *давно* существовали, просто в качестве необязательных модулей, к-е можно было прикрутить к перлу. Например, https://metacpan.org/pod/Function::Parameters . Кому надо - использовал, кому не надо - не использовал.

Сейчас это в ядре перла сделали очень аккуратно, чтобы не поломать обратную совместимость, т.е. чтобы код 25-летней давности продолжал работать на современной версии интерпретатора.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Релиз интерпретатора языка программирования Perl 5.20"  +3 +/
Сообщение от kurokaze (ok) on 27-Май-14, 23:59 
> Сейчас это в ядре перла сделали очень аккуратно, чтобы не поломать обратную
> совместимость, т.е. чтобы код 25-летней давности продолжал работать на современной версии интерпретатора.

бидонистам этого не понять, для них это ересь


Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

31. "Релиз интерпретатора языка программирования Perl 5.20"  –4 +/
Сообщение от Аноним (??) on 28-Май-14, 01:23 
>бидонистам этого не понять, для них это ересь

Orly? а ЧЕГО ЖЕ ТОГДА :
>>прекращена поддержка ветки 5.16

дЖва года прошло - и снова всё переписывай?

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

32. "Релиз интерпретатора языка программирования Perl 5.20"  +4 +/
Сообщение от rob pike on 28-Май-14, 01:39 
>прекращена поддержка ветки 5.16

Это означает что не будет 5.16.4, 5.16.5 и так далее.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

34. "Релиз интерпретатора языка программирования Perl 5.20"  –3 +/
Сообщение от Аноним (??) on 28-Май-14, 04:11 
>>прекращена поддержка ветки 5.16
> Это означает что не будет 5.16.4, 5.16.5 и так далее.

Ну я и говорю - как и в питоне, уже нет 1.*, 2.[123].* ...

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

36. "Релиз интерпретатора языка программирования Perl 5.20"  +9 +/
Сообщение от chinarulezzz (ok) on 28-Май-14, 05:09 
версий нет, но код то есть. И этот код сам не перепишется под новые версии питона 3.*, 4.*, 5.*, а в перле и переписывать не надо, всё и так работает.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

60. "Релиз интерпретатора языка программирования Perl 5.20"  –3 +/
Сообщение от Аноним (??) on 28-Май-14, 17:27 
> версий нет, но код то есть. И этот код сам не перепишется
> под новые версии питона 3.*, 4.*, 5.*, а в перле и

_как_и_в_перле_ :)
> переписывать не надо, всё и так работает.

И не надо звиздеть что оно само. А если "с лёгким напильником" - дык и у змеев есть 2->3 конвертер и тоже почти работающий :)))


Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

61. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Аноним (??) on 28-Май-14, 17:39 
Ты не уловил снова. Идет развитие ветки 5.xx - это значит код в версии 5.xx работает в версии 5.yy, где xx <= yy.
Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

49. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от kurokaze (ok) on 28-Май-14, 12:54 
> Ну я и говорю - как и в питоне, уже нет 1.*,
> 2.[123].* ...

Когда вы говорите, такое впечатление что вы бредите (с)

dev-lang/python
     Available versions:  
     (2.6)  [M]2.6.8-r3 [M]~2.6.9
     (2.7)  2.7.5-r3 ~2.7.5-r4 2.7.6 ~2.7.6-r1
     (3.2)  3.2.5-r3 ~3.2.5-r4
     (3.3)  3.3.2-r2 3.3.3 ~3.3.4 ~3.3.5
     (3.4)  ~3.4.0_rc1 ~3.4.0_rc3 ~3.4.0

dev-lang/perl [...] 5.16.3(0/5.16)

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

59. "Релиз интерпретатора языка программирования Perl 5.20"  –2 +/
Сообщение от Аноним (??) on 28-Май-14, 17:24 
Мухаха :) Выучи регекспы перловка ! :)
Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

41. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 28-Май-14, 10:53 
Еще как понять. Ты же не думаешь, что на python3 только из-за тормозов никто не переходит?
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

35. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 28-Май-14, 04:20 
Поздравляю перловщиков!
Хоть сам уже юзаю редко, но приятно что не бросили :)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним email(??) on 28-Май-14, 08:04 
Я так понял что модули CGI::* уходят в собственный цикл разработки и останутся?
Или замена на нечто другое?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

44. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Pilat (ok) on 28-Май-14, 12:23 
> Я так понял что модули CGI::* уходят в собственный цикл разработки и
> останутся?
> Или замена на нечто другое?

Да просто сама модель web-сервисов как CGI скриптов уходит из моды, Mojolicious отлично маскирует всю CGI обработку, да и писать на нём проще чем создавать кучу CGI. Я уже и забыл когда нужен был CGI.pm .

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

53. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Филимон Задумчивый on 28-Май-14, 14:24 
Catalyst ещё круче
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

54. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Pilat (ok) on 28-Май-14, 14:32 
> Catalyst ещё круче

Принципиального значения не имеет, В любом случае CGI нечасто сейчас используется.

Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока я знаю только то, что Catalist включает Moose и DBIC - что с моей точки зрения минус, а не плюс.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

55. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Andrey Mitrofanov on 28-Май-14, 14:52 
> Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока

Ну, %D почитай modernperlbooks.com/mt/2014/01/the-limits-of-a-programming-language-vision.html

> я знаю только то, что Catalist включает Moose и DBIC -

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

56. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Pilat (ok) on 28-Май-14, 14:54 
>> Кстати, насчёт "круче" - а где об этом почитать можно? Сравнение. Пока
> Ну, %D почитай modernperlbooks.com/mt/2014/01/the-limits-of-a-programming-language-vision.html

Там разве про Catalist vs Mojolicious ?


Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

57. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Andrey Mitrofanov on 28-Май-14, 15:14 
> Там разве про Catalist vs Mojolicious ?

Там про то, то реагировать на "Catalyst ещё круче" вопросом "где об этом почитать" в новости про релиз перла неправильно. Или я опять тэги пропустил.

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

58. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Pilat (ok) on 28-Май-14, 15:17 
>> Там разве про Catalist vs Mojolicious ?
> Там про то, то реагировать на "Catalyst ещё круче" вопросом "где об
> этом почитать" в новости про релиз перла неправильно. Или я опять
> тэги пропустил.

Если встретился человек, знающий что Catalist круче Mojo, грех не спросить :)

Ответить | Правка | ^ к родителю #57 | Наверх | Cообщить модератору

40. "Релиз интерпретатора языка программирования Perl 5.20"  –1 +/
Сообщение от Аноним (??) on 28-Май-14, 09:20 
Т.е. threads deprecated, но взамен пока ничего достойного нет?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

42. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от angra (ok) on 28-Май-14, 11:32 
Давно уже есть Coro
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

43. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от rob pike on 28-Май-14, 11:34 
POE, Coro, AnyEvent, и еще пара десятков модулей.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

67. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Antonio (??) on 04-Июн-14, 17:49 
show me queues at "POE, Coro, AnyEvent, и еще пара десятков модулей." plz
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

70. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 10-Мрт-15, 23:37 
Coro::Channel, у POE и AnyEvent вообще другая модель, если нужна именно многопоточность, то есть forks - эмулирующий все апи threads на нормальных форках, т.к. threads это эмуляция форков для венды.
Ответить | Правка | ^ к родителю #67 | Наверх | Cообщить модератору

47. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Аноним (??) on 28-Май-14, 12:46 
Там же написано, пока не deprecated.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

50. "Релиз интерпретатора языка программирования Perl 5.20"  –2 +/
Сообщение от Антуан on 28-Май-14, 13:13 
Байки из склепа.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

63. "Релиз интерпретатора языка программирования Perl 5.20"  +1 +/
Сообщение от Аноним (??) on 28-Май-14, 18:01 
дурачёк.
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

62. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Kodir (ok) on 28-Май-14, 17:39 
Эх, стоило не пописать на Перле лет 10, как уже совсем другие вещи! Coro, Catalist, сигнатуры... Надо освежить память и написать очередной многопоточный веб-сервер.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

64. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от Аноним (??) on 28-Май-14, 19:25 
>очередной многопоточный веб-сервер

Mojo::Server::Hypnotoad

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

69. "Релиз интерпретатора языка программирования Perl 5.20"  +/
Сообщение от iZEN (ok) on 02-Дек-14, 20:34 
Стоит ли переходить с Perl 5.18 на 5.20?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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