The OpenNET Project / Index page

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

Выпуск Rakudo Star 2016.11, дистрибутива Perl 6

28.11.2016 10:52

Доступен релиз пакета Rakudo Star 2016.11, включающего компилятор Rakudo, виртуальную машину MoarVM, документацию, модули и инструменты, необходимые для разработки на языке Perl 6. Компилятор соответствует спецификации Perl v6.c, за исключением поддержки расширенных макросов, неблокирующего ввода/вывода и ряда мелких особенностей, которые планируется довести до рабочего состояния в будущих выпусках. В качестве виртуальной машины для исполнения байткода предлагается MoarVM, которая проходит все тесты (альтернативный бэкенд на базе JVM пока не обладает всей необходимой функциональностью).

В новой версии основное внимание уделено работе над ошибками и оптимизации производительности. Из изменений можно отметить улучшение средств вывода предупреждений и ошибок, обеспечение сборки MoarVM в любых выпусках macOS, возможность сборки Rakudo в Solaris. В конструктор объектов добавлен субметод TWEAK, добавлена процедура parse-base, добавлен метод форматирования времени DateTime.hh-mm-ss, представлены итераторы Iterator.skip-one и Iterator.skip-at-least.

Из оптимизаций выделяется ускорение работы slip(@a) в 1.2 раза, сокращение времени инициализации массивов, ускорение работы Str.match в режиме ":nth" в два раза, ускорение работы Str.comb(Regex) в семь раз, ускорение операций Str.subst/subst-mutate на 30%, ускорение Match.Str|prematch|postmatch в два раза, ускорение операций "~~ /foo/" с хэшами и списками в два раза, увеличение производительности подстановок "Str:", "type:", "Range:", "Int:", "Seq:", "Hash:" в 1.5-14 раз, ускорение работы IO::Spec::Unix.canonpath в 7-50 раз, увеличение скорости копирования массивов в 10-20 раз, ускорение доступа к двумерным и трёхмерным массивам в 7 раз.

  1. Главная ссылка к новости (http://rakudo.org/2016/11/27/a...)
  2. OpenNews: Выпуск Rakudo Star 2016.10, дистрибутива Perl 6
  3. OpenNews: Релиз языка программирования Perl 5.24.0
  4. OpenNews: Состоялся рождественский релиз Perl 6
  5. OpenNews: Ларри Уолл представил Perl 6.0.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/45574-perl
Ключевые слова: perl, rakudo
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (23) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.3, Аноним Анонимович Анонимов (?), 12:27, 28/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Однако.

    >в 1.5-14 раз
    >в 7-50 раз
    >в 7 раз

     
     
  • 2.9, Аноним (-), 13:58, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    клоун: В каких условиях, в каких задачах?

    Если у МКАДа убрать все съезды, кроме одного, то можно очень быстро ездить по кругу.

     
     
  • 3.12, rshadow (ok), 14:36, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен. Все познается в сравнении. Бенчмарки в студию!
     
  • 2.40, angra (ok), 22:21, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В последний раз, когда я его тестировал он почти на два порядка уступал perl5 на простых операциях типа добавления в массив. Так что здесь не столько заслуга оптимизаторов, сколько недоработка тех, кто писал начальный код.
     
     
  • 3.45, angra (ok), 22:55, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Протестировал эту версию.
    Не знаю что они там оптимизировали с массивами, но вот такой простейший код 'my @a;push @a,$_ for 1..1000000' выполняется уже не в 40, а в 220 раз медленнее perl5. То есть по сравнению с прошлой(2016.10) версией базовая операция с массивом стала медленнее в 5 раз.

    Ну что сказать. Молодцы, круто оптимизировали, верной дорогой на свалку истории.

     

  • 1.4, Аноним (-), 12:44, 28/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто и где использует P6?
    Есть такие?
     
     
  • 2.5, Аноним (-), 13:22, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • –13 +/
    Те, кто родом из 90-х и кто не захотел переучиваться, а довел в совершенстве знания Perl и теперь использует его с синдромом "утенка" или "молотка".
     
     
  • 3.7, saahriktu (ok), 13:40, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Между Perl 5 и Perl 6 большая разница. Perl 5 более удобный. В частности, например, Perl 5 знает целую кучу кодировок, включая KOI8-R, а Perl 6 заточен исключительно под UTF-8.
     
     
  • 4.10, Плазма полетела (?), 13:58, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Все не UTF-8 кодировки уже давным-давно должны были умереть. Те, кто их использует, должны страдать.
     
  • 4.13, rshadow (ok), 14:37, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > исключительно под UTF-8

    И тот поломан.

     
  • 3.41, angra (ok), 22:24, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сразу видно, что ты совсем ничего не знаешь про perl и perl6.
     

  • 1.15, chinarulezzz (ok), 15:19, 28/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая новость. Столкнулся с тем, что сборочная система не понимает DESTDIR.
     
     
  • 2.47, freehck (ok), 09:07, 29/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати да. В последнее время новый тренд идёт: писать сборочные сценарии через какое угодно место, но вот чтобы "как раньше" - не было.

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

     

  • 1.17, Аноним (-), 16:02, 28/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    И зачем оно?

    $ time yes | head -n1000000 | perl -pe 's/y/n/' >/dev/null

    real 0m1.364s
    user 0m1.364s
    sys 0m0.012s

    $ time yes | head -n1000000 | perl6 -pe 's/y/n/' >/dev/null

    real 5m36.318s
    user 5m34.352s
    sys 0m1.000s

    Я обычно не люблю мемосики вообще и про Карла в частности, но... В 240 раз, Карл! И все эти 5 с половиной минут в top процесс moar жрал 100 % CPU.

    У меня всё.

     
     
  • 2.21, Аноним (-), 16:27, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >(альтернативный бэкенд на базе JVM пока не обладает всей необходимой функциональностью).

    То есть, получается, жаба еще не умеет так тормозить? :)

     
     
  • 3.26, Аноним (-), 17:05, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Обещают запилить в Java 9. Ждём-с.
     
  • 2.25, Аноним (-), 17:02, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    К суровому ынтерпрайзу готово!
     
  • 2.42, Саша (??), 22:45, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    time yes | head -n1000000 | perl -pe 's/y/n/' >/dev/null

    real 0m1.079s
    user 0m1.084s
    sys 0m0.004s

     
  • 2.43, Саша (??), 22:49, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > И зачем оно?
    > $ time yes | head -n1000000 | perl -pe 's/y/n/' >/dev/null
    > real 0m1.364s
    > user 0m1.364s
    > sys 0m0.012s
    > $ time yes | head -n1000000 | perl6 -pe 's/y/n/' >/dev/null
    > real 5m36.318s
    > user 5m34.352s
    > sys 0m1.000s

    time yes | head -n1000000 | perl6 -pe 's/y/n/' >/dev/null
    Программа 'perl6' на данный момент не установлена. Вы можете установить её, выполнив:
    sudo apt install rakudo

    real 0m0.259s
    user 0m0.124s
    sys 0m0.044s

     
     
  • 3.44, angra (ok), 22:49, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Саша, ты дурак?
     
  • 2.46, angra (ok), 23:07, 28/11/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У меня всё.

    А я, пожалуй, добавлю

    $ time yes | head -n1000000 | perl -pe  '' >/dev/null

    real 0m0.217s
    user 0m0.241s
    sys 0m0.011s

    $ time yes | head -n1000000 | perl6 -pe  '' >/dev/null

    real 0m19.550s
    user 0m19.263s
    sys 0m0.314s

     
  • 2.49, Noname (??), 13:52, 29/11/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Просто виртуальная машина медленно стартует.
     

  • 1.48, ыы (?), 10:42, 29/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >ускорение работы slip(@a) в 1.2 раза,

    Улыбнуло...

     

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



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

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