Доступен (http://rakudo.org/2016/11/27/announce-rakudo-star-release-20.../) релиз пакета Rakudo Star 2016.11 (http://rakudo.org/), включающего компилятор Rakudo, виртуальную машину MoarVM, документацию, модули и инструменты, необходимые для разработки на языке Perl 6. Компилятор соответствует спецификации Perl v6.c, за исключением поддержки расширенных макросов, неблокирующего ввода/вывода и ряда мелких особенностей, которые планируется довести до рабочего состояния в будущих выпусках. В качестве виртуальной машины для исполнения байткода предлагается MoarVM (http://moarvm.org/), которая проходит все тесты (альтернативный бэкенд на базе 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 раз.
URL: http://rakudo.org/2016/11/27/announce-rakudo-star-release-20.../
Новость: http://www.opennet.me/opennews/art.shtml?num=45574
Однако.>в 1.5-14 раз
>в 7-50 раз
>в 7 раз
клоун: В каких условиях, в каких задачах?Если у МКАДа убрать все съезды, кроме одного, то можно очень быстро ездить по кругу.
Согласен. Все познается в сравнении. Бенчмарки в студию!
В последний раз, когда я его тестировал он почти на два порядка уступал perl5 на простых операциях типа добавления в массив. Так что здесь не столько заслуга оптимизаторов, сколько недоработка тех, кто писал начальный код.
Протестировал эту версию.
Не знаю что они там оптимизировали с массивами, но вот такой простейший код 'my @a;push @a,$_ for 1..1000000' выполняется уже не в 40, а в 220 раз медленнее perl5. То есть по сравнению с прошлой(2016.10) версией базовая операция с массивом стала медленнее в 5 раз.Ну что сказать. Молодцы, круто оптимизировали, верной дорогой на свалку истории.
Кто и где использует P6?
Есть такие?
Те, кто родом из 90-х и кто не захотел переучиваться, а довел в совершенстве знания Perl и теперь использует его с синдромом "утенка" или "молотка".
Между Perl 5 и Perl 6 большая разница. Perl 5 более удобный. В частности, например, Perl 5 знает целую кучу кодировок, включая KOI8-R, а Perl 6 заточен исключительно под UTF-8.
Все не UTF-8 кодировки уже давным-давно должны были умереть. Те, кто их использует, должны страдать.
> исключительно под UTF-8И тот поломан.
Сразу видно, что ты совсем ничего не знаешь про perl и perl6.
Хорошая новость. Столкнулся с тем, что сборочная система не понимает DESTDIR.
Кстати да. В последнее время новый тренд идёт: писать сборочные сценарии через какое угодно место, но вот чтобы "как раньше" - не было.Вот давеча заказывали у конторки одной написать немного кода. Предоставили они нам результат, а у них там в install-скриптах докер запускается, буст из сети подгружается, и вообще хз что творится. А нам это в сборочную интегрировать...
И зачем оно?$ 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.
У меня всё.
>(альтернативный бэкенд на базе JVM пока не обладает всей необходимой функциональностью).То есть, получается, жаба еще не умеет так тормозить? :)
Обещают запилить в Java 9. Ждём-с.
К суровому ынтерпрайзу готово!
time yes | head -n1000000 | perl -pe 's/y/n/' >/dev/nullreal 0m1.079s
user 0m1.084s
sys 0m0.004s
> И зачем оно?
> $ 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.000stime yes | head -n1000000 | perl6 -pe 's/y/n/' >/dev/null
Программа 'perl6' на данный момент не установлена. Вы можете установить её, выполнив:
sudo apt install rakudoreal 0m0.259s
user 0m0.124s
sys 0m0.044s
Саша, ты дурак?
> У меня всё.А я, пожалуй, добавлю
$ 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
Просто виртуальная машина медленно стартует.
>ускорение работы slip(@a) в 1.2 раза,Улыбнуло...