Rakudo 2021.04
Тихо и незаметно вышла версия 2021.04 компилятора языка программирования Raku — Rakudo. Компиляция осуществляется для таких виртуальных машин как: MoarVM, JVM и другие. На данный момент, Rakudo является самым развитым воплощением языка программирования Raku. Данный выпуск реализует версии 6.c и 6.d спецификации.
Следующий релиз предварительно запланирован на 21 мая.
Для команды разработчиков очень важна обратная связь! Будьте любезны оставить отзыв если используете Rakudo. Вопросы, комментарии, предложения, улучшения — рады любой обратной связи!
Желающие поддержать развитие Raku могут сделать пожертвование в The Perl Foundation (Выберите «Raku Core Development Fund» в графе «Purpose»).
Некоторые изменения 2021.04:
- Нововведения:
- Для Enum добавлена поддержка методов: keys, values, kv, pairs, antipairs, invert. Пример:
my $e = enum ('a' => 3, 'b' => 17); say $e.antipairs; # (3 => a 17 => b)
- Метод uniname теперь работает для всех значений типа Cool, в том числе Num и Match
say 1.0.uniprop('Numeric_Type'); # OUTPUT: «Decimal»
- В IO: Path добавлены методы user и group:
my $io = IO::Path.new('slackware-user', :CWD); say $io.user; # OUTPUT: «1000»
- В DateTime добавлены методы day-fraction, modified-julian-date и julian-date
my $now = DateTime.now(formatter => { sprintf "%02d:%02d", .hour, .minute }); say "$now ", ( $now.day-fraction * 100 ).fmt('%d%%'); # OUTPUT: «21:26 89%»
- Для Enum добавлена поддержка методов: keys, values, kv, pairs, antipairs, invert. Пример:
- Улучшения производительности:
- now теперь работает в 38 раз быстрее.
- Str.wordcase ускорен в 5 раз.
say "raku programming".wordcase; # OUTPUT: «Raku Programming»
- Str.uniparse стал быстрее ~10%
say "I {uniparse 'TWO HEARTS'} Raku"; # OUTPUT: «I