Rakudo 2021.04

good-penguin.png

Тихо и незаметно вышла версия 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%␤»
      
  • Улучшения производительности:
    • now теперь работает в 38 раз быстрее.
    • Str.wordcase ускорен в 5 раз.
      say "raku programming".wordcase;        # OUTPUT: «Raku Programming␤»
      
    • Str.uniparse стал быстрее ~10%
      say "I {uniparse 'TWO HEARTS'} Raku"; # OUTPUT: «I 
          
                  

      ©  Linux.org.ru