Релиз Perl6-дистрибутива «Rakudo Star» 2015.11
28 ноября 2015 года был выпущен ноябрьский релиз Perl6-дистрибутива «Rakudo Star» 2015.11. Это первая официальная бета-версия дистрибутива (поскольку октябрьский релиз так и не появился).
Этот релиз «Rakudo Star» был выпущен с поддержкой бэкенда MoarVM (все модули проходят тесты на всех поддерживаемых платформах). JVM бэкенд в данной версии не является полнофункциональным, поэтому рекомендуется использовать только бэкенд MoarVM.
В мире Perl 6 есть различие между языком «Perl 6» и конкретной реализацией языка, такой как «Rakudo Star». Данный релиз содержит компилятор Perl 6 Rakudo 2015.11 с кодовым именем «Bend» и бэкенд MoarVM 2015.11, а также различные модули, документацию и другие полезные ресурсы от сообщества.
В новой версии Rakudo Star:
- Новый инфикс оператор
<.>
для вызова методов с меньшим приоритетом, чем постфиксный унарный вызов метода. - Новый оператор
infix o
для компоновки функций - Реализован оператор
fc
для корректного Юникод фолдинга символов - grep принимает атрибуты
:k
,:v
,:kv
,:p
Supply.throttle
для ограничения скоростиArray.push
теперь используется, чтобы добавлять один элемент;Array.append
для добавления нескольких. Тоже самое дляunshift
/prepend
.- Нотация
v
для цифро-буквенных компонентов: v1.2.beta. - Множество встроенных методов, возвращающих итерабельный объект, заметно ускорились в работе
- Начальная поддержка фиксированных (shaped) массивов
\r\n
теперь единая (синтетическая) графема- Поддержка Юникода в соответствии с Annex #29
- Юникод-кавычки можно использовать в регулярных выражениях
- Улучшенная поддержка переносов строк с
use newline
и обновлениеIO::Handle
- Добавлены методы
List.head
,List.tail
,List.repeated
- В
Str.encode
теперь можно использовать параметр:replacement
для замены последовательностей не подлежащих перекодированию Str.split
теперь может принимать на вход несколько строк- Новый
Range.int-bounds
возвращает первое/последнее значение для целых диапазонов - Автогенерируемые мета-операции оживляют путём установки ссылки на них, вместо их выполнения
- Некорректное присвоение различных Numeric значений теперь выдаёт ошибку во время компиляции
- Реализован
&nextcallee
, теперь возвращает подпрограмму, которую будет выполнятьnextsame
- Ускорение различных операций
Улучшения в модулях:
DBIish
: улучшена поддержка Windowspanda
: install больше не является операцией по умолчаниюLWP::Simple
: поддержка кодов 2xx (помимо 200)Shell::Command
: командаwhich
для поиска исполнимых файлов
Ещё до конца не реализовано, но запланировано в следующем релизе:
- Поддержка расширенных макросов
- Неблокируемый ввод/вывод