Skip to content

Version 2.12

Compare
Choose a tag to compare
@trizen trizen released this 10 Dec 23:29
· 2976 commits to master since this release

The multiple dispatch is back!

In addition, this release includes support for functional pattern matching, various optimizations, improvements and several bug-fixes.

What's new

  • Support for multiple dispatch (ab914f8)
  • Support for functional pattern matching (e756b97)
  • Support for class attributes with the has keyword. (7de49f0)
  • Auto-conversion of arguments from Perl callback functions (8c7debc)
  • Added the Array.last_by{} method (423f190)
  • Added the -k switch to keep track of potential unsafe interpretations (e31de40)
  • Added the Array.dig() and Hash.dig() methods (6ce5ad5)
  • Added the ... prefix operator to represent unimplemented code (b1604b3)
  • Added the Array.freq() and the Hash.map{} methods (ae25298)
  • Added the String.numbers and String.each_number{} methods (1f7991d)
  • Added the Hash.count{} method (59b595d)
  • Added the Bool.pick method which randomly returns true or false (d71f860)
  • Added the following Complex methods: root, roots, polars and reals (501b714 26f78d4)

Improvements

  • Optimized the prefix and postfix ++ and -- operators (ab914f8)
  • The operator != is slightly faster now (84483ef)
  • Improved the assertions to include the actual values (d584e60)
  • Improved the given/when construct (e9f70c7)
  • All the meta-objects are created directly inside the parser (80bae2e)
  • Better localization of the topic variable (_) (c723701 6c45643)

Bug-fixes

  • Array.rotate will always return a new array (606c837)
  • Fixed the deparsing of the bare Block keyword (754f102)
  • Deparsing code to Perl (with -Rperl) will now include binmode(STD*, ':utf8') (4a9ebf1)

More changes: 2.11...2.12