Announce: Rakudo Star Release 2016.11

On behalf of the Rakudo and Perl 6 development teams, I’m pleased to
announce the November 2016 release of “Rakudo Star”, a useful and usable
production distribution of Perl 6. The tarball for the November 2016 release
is available from http://rakudo.org/downloads/star/.

This is the fifth post-Christmas (production) release of Rakudo Star and
implements Perl v6.c. It comes with support for the MoarVM backend (all
module tests pass on supported platforms).

Please note that this release of Rakudo Star is not fully functional with
the JVM backend from the Rakudo compiler. Please use the MoarVM backend
only.

In the Perl 6 world, we make a distinction between the language (“Perl
6”) and specific implementations of the language such as “Rakudo Perl”.
This Star release includes release 2016.11 of the Rakudo Perl 6 compiler,
version 2016.11 of MoarVM, plus various modules, documentation, and
other resources collected from the Perl 6 community.

The changes in this release are outlined below:

New in 2016.11:

Fixes:
+ Various improvements to warning/error-reporting
+ Fixed assigning values to shaped arrays through iterators [839c762]
+ Fixed Str.Int not failing on numerics with combining characters [d540fc8]
+ [JVM] Fixed <a b c>.antipairs breakage [dd7b055]
+ defined routine now correctly authothreads with Junctions [189cb23]
+ Fixed poor randomness when .pick()ing on ranges with >32-bit numbers [34e515d]
+ Fixed infix:<x> silencing Failures [2dd0ddb]
+ Fixed edge case in is-approx that triggers DivByZero exception [f7770ed]
+ (Windows) Fixed returning of an error even when succeeding in mkdir [208a4c2]
+ (Windows) Fixed precomp unable to rename a newly compiled file [44a4c75]
+ (Test.pm) Fixed indent of multi-line diag() and test failure messages [43dbc96]
+ Fixed a callframe crash due to boxing of NULL filenames [200364a]
+ ∞ ≅ ∞ now gives True [4f3681b]
+ Fixed oversharing with grammars used by multiple threads [7a456ff]
+ Fixed incorrect calculations performed by acotan(num) [8e9fd0a]
+ Fixed incorrect calculations performed by asinh(num)/acosh(num) [a7e801f]
+ Fixed acosh return values for large negative numbers [5fe8cf7]
+ asinh(-∞) now returns -∞ instead of NaN [74d0e36]
+ atanh(1) now returns ∞ instead of throwing [906719c][66726e8]
+ Fixed missing close in IO::Path.slurp(:bin) [697a0ae]
+ :U QuantHashes now auto-vivify to their correct type and not Hash [79bb867]
+ Mix/MixHash.Bag/BagHash coersion now ignores negative weights [87bba04]
+ arity-0 infix:<Z> now returns a Seq instead of a List [3fdae43]
+ Fix augment of a nested package [87880ca]
+ Smartmatch with Regex variable now returns a Match instead of Bool [5ac593e]
+ Empty ()[0] now returns Nil instead of False [f50e39b]
+ Failed IO::Socket::Async connection no longer produces unexpected crash [f50e39b]
+ Quitting Supplies with no QUIT phasers no longer unexpectedly crash [f50e39b]
+ Fixed NativeCall issues on big endian machines [627a77e]
+ Fixed broken handling of $/ in some uses of `.match` [ba152bd]
+ Fixed Lock.protect not releasing the lock on control exceptions [48c2af6]
+ MoarVM now builds on any version of macOS [b4dfed2]
+ Fixed concurrency crashes due to garbage collection [6dc5074]
+ Fixed race condition in EmptyIterator [ed2631c]
+ Fixed hang with multi-threaded long-running NativeCall calls [f99d958]
+ Made my @a[10] = ^Inf work [aedb8e7]
+ Fixed [;]:delete [3b9c4c9]
+ Fixed incorrect handling of negative weights in ∪ operator [e10f767]
+ duckmap now preserves types of Iterables [43cb55f]
+ Fixed premature overflow to Inf with large Num literals [729d7e3]
+ Fixed race condition in NativeCall callsite used by multiple threads [49fd825]
+ Fixed instabilities in programs launching many threads at startup [0134132]
+ Fixed crash when reporting X::Composition::NotComposable or
X::Inheritance::Unsupported exceptions [a822bcf]
+ Fixed clock_gettime issue on macOS [ee8ae92]
+ Fixed SEGV in multi-threaded programs with strings-as-strands [395f369]
+ `regex` TOP Grammar rule will now backtrack if needed [4ccb2f3]
+ Fixed .rotate/.reverse on 1-dimmed arrays assigning to self [2d56751]
+ Fixed exponentiation involving zeros for Complex numbers [7f32243]
+ Fixed Label.gist [29db214][53d7b72]
+ Fixed certain edge cases of incorrect stringification of Rationals
with .Str, .perl, and .base [b5aa3c5]

Additions:
+ Added TWEAK submethod for object construction [fdc90a2][9409d68]
+ Added DateTime.hh-mm-ss [bf51eca]
+ Added parse-base routine [7e21a24]
+ is-approx with no explicit tolerances now uses more complex algorithm to
choose a tolerance to use (same as old is_approx) [82432a4]
+ on failure, is-approx now displays actual values received [b4fe680]
+ Added Iterator.skip-one to skip a single value [71a01e9]
+ Added Iterator.skip-at-least to skip several values [8d357af]
+ Re-imagined Str.match [b7201a8]:
+ the family of :nth is now lazy will return whatever can find
+ non-monotonically increasing :nth iterator values will now die
+ Str.match/subst/subst-mutate now have :as adverb [1b95636][c9a24d9][aaec517]
+ &infix: now works with Setty objects [d92e1ad]
+ :ov and :ex adverbs are now illegal in Str.subst [b90c741]
+ Made nextwith/samewith/nextsame/callwith to be real subroutines [70a367d]
+ Added CX::Emit and CX::Done control exceptions [07eeea8]
+ Setty.Mix/.MixHash coercers now use Int weights instead of Bool [7ba7eb4]
+ Implemented :kv,:p,:k,:v on 1-element multidim [;] [764cfcd]
+ .chrs can now also accepts codepoint numbers as Str [4ae3f23]
+ Added support for compilation of Rakudo on Solaris [a43b0c1]
+ IterationEnd.perl/gist/Str now returns text “IterationEnd” [59bb1b1]
+ Added X::Syntax::Number::InvalidCharacter exception [2faa55b]
+ .reverse/rotate on 1-dimmed arrays are now nodal [cd765e6]
+ .line and .file on core Code now references original source files [b068e3a]
+ .rethrow now works on unthrown exceptions [58a4826]
+ All Reals now accept `Whatever` as the second argument to .base() [c1d2599]
+ sub MAIN usage message shows possible Enum values if param is
named and is an Enum [a3be654]

Efficiency:
+ Made slip(@a) about 1.2x faster [37d0e46]
+ Made initialization of 2+dimmed array 10x to 16x faster [dfb58d4]
+ Str.match is now about 5% faster [4fc17df]
+ Str.match with :nth feature is now about 2x faster [41e2572]
+ my @a = Str.match(…) is now about 5% faster [e472420]
+ Str.comb(Regex) is now about 7x faster [1794328]
+ Simple Str.subst/subst-mutate is now about 30% faster [364e67b]
+ Match.Str|prematch|postmatch is now about 2x faster [e65d931]
+ Match.Bool is now about 1% faster (not much, but used a lot) [1fce095]
+ Made ~~ /foo/ faster: 2% for successful/6% for failed matches [05b65d0]
+ Made <foo bar baz> ~~ /foo/ about 2x faster [e4dc8b6]
+ Made %h ~~ /foo/ about 2x faster [33eeb32]
+ Frequent accesses of multiple adverbs (e.g. %h<a>:p:exists)
is now 2x faster [f22f894]
+ Made infix: faster: Str: 14x, type: 10x, Range: 3.5x,
Int|Seq|Hash: 1.5x, Array: 1.2x [bc7fcc6]
+ IO::Spec::Unix.canonpath is now 7x to 50x faster [f3f00fb]
+ Baggy.roll/pick is now about 10% faster [fc47bbf]
+ Made copying shaped arrays 10x to 20x faster [a1d8e93][0cf7b36][d27ecfa]
+ Made setting up a shaped array 2x as fast [f06e4c3]
+ Made creation of typed shaped arrays 15% faster [f5bf6c1]
+ Made 2d/3d array accesses about 7x as fast [d3a0907]
+ Made AT-POS on 1,2,3dim arrays about 20x faster [feb7bcb]
+ Made creating a shaped array about 50% faster [1293188][576f3a1]
+ Made .AT-POS on 3+ dimmed arrays 20% faster [1bb5aad]
+ Made over-indexed .AT-POS on 1,2,3 dimmed arrays about 10% faster [1bb5aad]
+ Made multi-dimmed ASSIGN-POS about 30% faster [5b2bdeb]
+ Made .ASSIGN-POS for 1,2,3dimmed arrays about 40x faster [050cf72]
+ Made n-dimmed .EXISTS-POS about 1.5x faster [006f008]
+ Made .EXISTS-POS for 1,2,3dimmed arrays about 10x faster [b1c41b7]
+ Made n-dimmed DELETE-POS about 1.3x faster [6ccecb1]
+ Made .DELETE-POS for 1,2,3dimmed arrays about 20x faster [55b9e90]
+ Made n-dimmed BIND-POS about 1.3x faster [2827edb]
+ Made .BIND-POS for 1,2,3dimmed arrays about 20x faster [9f94525]
+ Made @a[10].STORE at least as fast as @a.STORE [8064ff1]
+ Made .kv on shaped Arrays about 4x faster [e42b68e]
+ Made .pairs/.antipairs on shaped Arrays about 2.8x faster [0f2566a][f608a33]
+ Made List.kv about 30% faster [7a2baf4]
+ for loops on 1-dimmed arrays are now 3x faster [ed36e60]
+ .kv on 1-dimmed arrays is now 7x faster [608de26]
+ .pairs/.antipairs on 1-dimmed arrays is now 3x faster [b7d9537][1c425f9]
+ postcircumfix[;] on 2/3 dimmed arrays is now 9x faster [0b97362]
+ Assignment to [;] for 2/3 dimmed arrays is now 10x faster [ce85ba3]
+ [;]:exists for 2/3 dimmed arrays is now 7x faster [e3e3fef]
+ [;]:delete for 2/3 dimmed arrays is now 10x faster [3b9c4c9]
+ [;] := foo for 2/3 dimmed arrays is now 10x faster [eaf4132]
+ .iterator and .values on shaped arrays are now about 4x faster [736ab11]
+ Fixed optimization of shaped arrays that gives 10% gain on simple `for`
loops and likely will give larger gains on bigger programs [b7e632e]
+ Made starting MappyIterator faster, affecting all Hash/Map/Baggy iterator
methods. 2-elem Hash iteration is 1.6x faster [97fb6c2]
+ Made starting a grepper faster: .grep on with no adverbs on 2-element list
is now 20% faster [077c8f0]
+ Made Date/DateTime creation 20% faster [0e7f480]
+ Hashes now use 4 (32-bit) or 8 (64-bit) bytes less memory per stored item [395f369]
+ Rational.Str is now about 40% faster [b5aa3c5]
+ Rational.base is now about 30% faster [b5aa3c5]
+ Various streamlining of code that’s hard to measure the final impact of

Notable changes in modules shipped with Rakudo Star:

+ DBIish: Prepare tests for lexical module loading and do not rely on your dependencies to load modules
+ Pod-To-HTML: Bump version and use a separate element as anchor for “to top” links
+ Terminal-ANSIColor: Update Pod documentation and support 256-color and 24-bit RGB modes
+ doc: Large number of changes – too many to detail here
+ json_fast: Speed gains
+ panda: Explicitly use Panda::Project as we use it in class Panda
+ perl6-lwp-simple: Change to http.perl6.org since the main site is going https and add NO_NETWORK_TESTING

There are some key features of Perl 6 that Rakudo Star does not yet
handle appropriately, although they will appear in upcoming releases.
Some of the not-quite-there features include:

* advanced macros
* non-blocking I/O (in progress)
* some bits of Synopsis 9 and 11

There is an online resource at http://perl6.org/compilers/features
that lists the known implemented and missing features of Rakudo’s
backends and other Perl 6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the
programmer that a given feature isn’t implemented, but there are many
that we’ve missed. Bug reports about missing and broken features are
welcomed at rakudobug@perl.org.

See http://perl6.org/ for links to much more information about
Perl 6, including documentation, example code, tutorials, presentations,
reference materials, design documents, and other supporting resources.
Some Perl 6 tutorials are available under the “docs” directory in
the release tarball.

The development team thanks all of the contributors and sponsors for
making Rakudo Star possible. If you would like to contribute, see
http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org
mailing list, or join us on IRC #perl6 on freenode.

Posted in Uncategorized | Comments Off on Announce: Rakudo Star Release 2016.11

Announce: Rakudo Star Release 2016.10

On behalf of the Rakudo and Perl 6 development teams, I’m pleased to announce
the October 2016 release of “Rakudo Star”, a useful and usable production
distribution of Perl 6. The tarball for the October 2016 release is available
from http://rakudo.org/downloads/star/.

This is the fourth post-Christmas (production) release of Rakudo Star and
implements Perl v6.c. It comes with support for the MoarVM backend (all module
tests pass on supported platforms).

Please note that this release of Rakudo Star is not fully functional with the
JVM backend from the Rakudo compiler. Please use the MoarVM backend only.

In the Perl 6 world, we make a distinction between the language (“Perl 6”) and
specific implementations of the language such as “Rakudo Perl”. This Star
release includes release 2016.10 of the Rakudo Perl 6 compiler, version 2016.10
of MoarVM, plus various modules, documentation, and other resources collected
from the Perl 6 community.

Some of the new compiler features since the last Rakudo Star release include:

+ Test.pm now provides bail-out()
+ Implemented $?MODULE and ::?MODULE
+ Implemented CompUnit::Repository::Installation::installed
+ .min/.max can now be called on Hashes
+ .succ now increments additional 29 digit ranges, such as Thai digits
+ Coercions now work in return types
+ Added RAKUDO_EXCEPTIONS_HANDLER env var to control exceptions output
+ CompUnit::Repository::Installation now cleans up short-name folders when empty
+ All Unicode quotes can now be used as quoters inside qqww/qww
+ Added basic Unicode 9 support (NFG changes for latest TR#29 still to do))
+ IO::Handle.new now uses ‘utf8’ encoding by default
+ It’s now possible to refer to sigiless parameters inside where clauses
+ Made Complex.new() return 0+0i
+ Added shortname() method to CurriedRoleHOW

Compiler maintenance since the last Rakudo Star release includes:

+ zef and panda now correctly install on OpenBSD and FreeBSD
+ Numerous improvements to content of error messages and addition of new previously-undetected warnings
+ Race conditions and deadlocks fixed
+ Large number of Hash, Bag, Baggie BagHash etc. speedups
+ Numerous improvements in CUR, offering up to 10x faster module loading
+ Many permutations() and combinations() speedups
+ Distribution::Path now handles native libraries correctly
+ Junctions now work in .classify
+ Fixed a memory leak involving EVAL
+ Fixed tab-completion issues with non-identifiers in REPL
+ Made huge improvement to CUR::Filesystem.id performance
+ Many fixes and additions improving JVM backend support
+ Removed argument-taking Dateish candidates for is-leap-year, days-in-month, and day-of-week (were never part of the spec)
+ Cool.IO no longer accepts any arguments
+ Overflow check has been removed from infix:<**>(int, int)

Notable changes in modules shipped with Rakudo Star:

+ prove6 has been added and will be used by panda unless PROVE_COMMAND env var set
+ perl6-pod-to-bigpage: added as dependency for doc tests
+ DBIish: Add simple Str support for Postgres type 790 (money)
+ Linenoise: Remove dependency on Native::Resources
+ Pod-To-HTML: Add support for lang=”” attribute, ignore .precomp and other changes
+ doc: Many documentation additions and improvements (too many to list!)
+ json-fast: Don’t explode when using to-json on a Num
+ p6-native-resources: Mark this module as deprecated in the ecosystem
+ panda: support for prove6 and uninstallation of modules and much else
+ perl6-lwp-simple: Make SSL testing optional and more control over character encoding.
+ svg-plot: Background color option and bubble plot type added.
+ perl6intro.pdf has also been updated.

There are some key features of Perl 6 that Rakudo Star does not yet handle
appropriately, although they will appear in upcoming releases. Some of the
not-quite-there features include:

+ advanced macros
+ non-blocking I/O (in progress)
+ some bits of Synopsis 9 and 11
+ There is an online resource at http://perl6.org/compilers/features that lists
the known implemented and missing features of Rakudo’s backends and other Perl
6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the programmer
that a given feature isn’t implemented, but there are many that we’ve missed.
Bug reports about missing and broken features are welcomed at
rakudobug@perl.org.

See http://perl6.org/ for links to much more information about Perl 6,
including documentation, example code, tutorials, presentations, reference
materials, design documents, and other supporting resources. Some Perl 6
tutorials are available under the “docs” directory in the release tarball.

The development team thanks all of the contributors and sponsors for making
Rakudo Star possible. If you would like to contribute, see
http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org mailing list,
or join us on IRC #perl6 on freenode.

Posted in announce | Comments Off on Announce: Rakudo Star Release 2016.10

Announce: Rakudo Star Release 2016.07

On behalf of the Rakudo and Perl 6 development teams, I’m pleased to announce the July 2016 release of “Rakudo Star”, a useful and usable production distribution of Perl 6. The tarball for the July 2016 release is available from http://rakudo.org/downloads/star/.

This is the third post-Christmas (production) release of Rakudo Star and implements Perl v6.c. It comes with support for the MoarVM backend (all module tests pass on supported platforms).

Please note that this release of Rakudo Star is not fully functional with the JVM backend from the Rakudo compiler. Please use the MoarVM backend only.

In the Perl 6 world, we make a distinction between the language (“Perl 6”) and specific implementations of the language such as “Rakudo Perl”. This Star release includes release 2016.07 of the Rakudo Perl 6 compiler, version 2016.07 of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

Some of the new compiler features since the last Rakudo Star release include:

  • Ability to use a custom debugger module
  • The “is-approx” sub from Test.pm6 now allows for relative/absolute tolerance
  • A fail in a custom BUILD will now be returned, rather than thrown
  • Introduce .Map coercer
  • Implement alternate ways to call subtest
  • Support for new leap-second at the end of 2016
  • The “is required” trait on Attributes can now take a Bool or a Str
  • IO::[Path,Handle] gained a .mode method which returns the POSIX file permissions
  • Distribution is now a role interface that enables encapsulating IO used for distribution installation
  • CompUnit::Repository::Installation now uses the new Distribution interface
  • Custom repository implementations now supported, including precompilation

Compiler maintenance since the last Rakudo Star release includes:

  • Basic object creation (using either .new or .bless) now up to 3x faster
  • All routines now have less overhead
  • The MMD cache accepts candidates with named parameters if it can. (This made adverbed slices about 18x as fast)
  • Sigificant optimizations for speed in many parts of the system (.map, gather/take etc.)
  • Many precompilation fixes (including EVAL and improved support of OS packaging)
  • Arrays with holes (e.g. from :delete) now correctly iterate/auto-vivify
  • An issue with reverse dependencies of installed modules was fixed
  • “is_approx” sub (note underscore) from Test.pm6 deprecated
  • Harden Mu.Str against moving GC
  • Simplify $USER/$GROUP initialization
  • Mu can now be the result of a Promise
  • samewith() now also works on non-multi’s
  • Many fixes in the area of pre-compilation and installing modules
  • count-only and bool-only now are optional methods in Iterators (only to be implemented if they can work without generating anything)
  • IO::ArgFiles.slurp / IO::ArgFiles.eof are fixed
  • REPL whitespace and error handling
  • CompUnit::Repository::Installation no longer considers bin/xxx and resources/bin/xxx the same content address
  • min/max on Failures throw instead of returning ±Inf
  • NativeCall’s is mangled trait no longer ignored for CPPStruct
  • Many Str, List and Array methods much faster
  • Map/Hash initializations are now 30% faster
  • make DESTDIR now correctly finds CompUnit::Repository::Staging
  • Output from Test.pm6’s diag() is no longer lost in non-verbose prove output when called at the start of the test file or during TODO tests
  • Improved error messages

Notable changes in modules shipped with Rakudo Star:

  • DBIish: v0.5.9 (with many Oracle/MySQL fixes) plus README.pod and mojibake fixes
  • NativeHelpers-Blob: v0.1.10
  • PSGI: v1.2.0 supports P6SGI 0.7Draft
  • Pod-To-HTML: v0.1.2 plus fixes
  • debugger-ui-commandline: README fixes
  • doc: many fixes to documentation content and HTML generation
  • panda: Avoid Rakudo internals deprecation warning and don’t require Build.pm to inherit Panda::Builder
  • perl6-file-which: CI fixes
  • perl6-http-easy: v1.1.0 (with more flexible P6SGI support) plus avoid errors in binary request
  • shell-command: Mention already implemented commands missing from README
  • perl6-lwp-simple: track github.com/perl6/perl6-lwp-simple as upstream (as panda does) which has a test fix needed since we don’t support https in R* and a test url had a new https redirect

perl6intro.pdf has also been updated.

There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Some of the not-quite-there features include:

  • advanced macros
  • non-blocking I/O (in progress)
  • some bits of Synopsis 9 and 11
  • There is an online resource at http://perl6.org/compilers/features that lists the known implemented and missing features of Rakudo’s backends and other Perl 6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the programmer that a given feature isn’t implemented, but there are many that we’ve missed. Bug reports about missing and broken features are welcomed at rakudobug@perl.org.

See http://perl6.org/ for links to much more information about Perl 6, including documentation, example code, tutorials, presentations, reference materials, design documents, and other supporting resources. Some Perl 6 tutorials are available under the “docs” directory in the release tarball.

The development team thanks all of the contributors and sponsors for making Rakudo Star possible. If you would like to contribute, see http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org mailing list, or join us on IRC #perl6 on freenode.

Posted in announce | Comments Off on Announce: Rakudo Star Release 2016.07

Announce: Windows (64 bit) Installer for Rakudo Star 2016.04

A Windows MSI installer is now available for x86_64 (64bit) platforms (probably Windows 7 or better) and has the JIT (Just in Time compiler) enabled.  This version was built with mingw (from Strawberry Perl) rather than the usual MSVC which may have performance implications. In order to use the module installer “panda” you will also need to install Strawberry Perl and Git for Windows. Also see http://www.perl6.org/downloads/ for Errata notices concerning panda.

Unfortunately the usual second installer targeting x86 (32bit) platforms isn’t currently available.  It’s hoped this will be available in the near future and until then the previous 2016.01 is recommended for x86 (32bit). No 32 bit versions feature the JIT. MSIs are available from http://rakudo.org/downloads/star/.

Posted in announce | Comments Off on Announce: Windows (64 bit) Installer for Rakudo Star 2016.04

Announce: Mac OS X Installer for Rakudo Star 2016.04

A Mac OS X installer is now available. This installer has the “.dmg” file extension and is available from http://rakudo.org/downloads/star/rakudo-star-2016-04.dmg

Posted in announce | Comments Off on Announce: Mac OS X Installer for Rakudo Star 2016.04

Announce: Rakudo Star Release 2016.04

On behalf of the Rakudo and Perl 6 development teams, I’m honored to announce the April 2016 release of “Rakudo Star”, a useful and usable production distribution of Perl 6. The tarball for the April 2016 release is available from http://rakudo.org/downloads/star/.

This is the second post-Christmas (production) release of Rakudo Star and implements Perl v6.c. It comes with support for the MoarVM backend (all module tests pass on supported platforms).

Please note that this release of Rakudo Star is not fully functional with the JVM backend from the Rakudo compiler. Please use the MoarVM backend only.

In the Perl 6 world, we make a distinction between the language (“Perl 6”) and specific implementations of the language such as “Rakudo Perl”. This Star release includes release 2016.04 of the Rakudo Perl 6 compiler, version 2016.04 of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

Some of the new compiler features since the last Rakudo Star release include:

  • Much improved REPL with multi-line support.
  • Native string arrays.
  • Values in the environment value hash are now allomorphic.
  • Blob is now a proper value type.
  • Many Time & Memory efficiency improvements including faster accessor/mutators, sorting and object comparison.
  • Can now uninstall modules.
  • Modules can now be shared between rakudo versions.
  • “magic” inc/dec cleaned up.
  • utf8-c8 encoding crashes fixed.
  • pre-comp locking fix.
  • missing module error mentions line number.
  • The usual assortment of bug fixes and error message improvements.

Notable changes in modules shipped with Rakudo Star:

  • Bailador: removed and available in the ecosystem.
  • ufo: removed and available in the ecosystem.
  • Native::Resources: helper for native code added.
  • DBIish: Better Oracle & Postgres support, more GLRish API and many other fixes.
  • Shell::Command: deprecated “which”.
  • Panda: Fix issues with paths containing spaces, ‘–help’ option added etc.
  • p6doc: no longer creates empty FakeDir directories (was workaround for now fixed precomp bug).
  • JSON::Fast: fix for undefined value.
  • NativeHelpers::Blob: version 0.1.8 with improved windows tests.
  • PSGI: allow output to be a Buf.
  • Shell::Command: travis fix and deprecate which on Windows and Mac.
  • * And much more.

There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Some of the not-quite-there features include:

  • advanced macros
  • non-blocking I/O (in progress)
  • some bits of Synopsis 9 and 11

There is an online resource at http://perl6.org/compilers/features that lists the known implemented and missing features of Rakudo’s backends and other Perl 6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the programmer that a given feature isn’t implemented, but there are many that we’ve missed. Bug reports about missing and broken features are welcomed at rakudobug@perl.org.

See http://perl6.org/ for links to much more information about Perl 6, including documentation, example code, tutorials, presentations, reference materials, design documents, and other supporting resources. Some Perl 6 tutorials are available under the “docs” directory in the release tarball.

The development team thanks all of the contributors and sponsors for making Rakudo Star possible. If you would like to contribute, see http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org mailing list, or join us on IRC #perl6 on freenode.

Posted in announce | Comments Off on Announce: Rakudo Star Release 2016.04

Announce: Mac OS X Installer for release 2016.01

Thanks to Steve Mynott a Mac OS X installer is now available.
This installer has the “.dmg” file extension and is available from http://rakudo.org/downloads/star/.

Posted in announce | Comments Off on Announce: Mac OS X Installer for release 2016.01

Announce: Windows MSI Installers for release 2016.01

The Windows MSI installers are now available, coming again in two versions. One installer targets x86 (32bit) platforms, and the other installer targets x86_64 (64bit) platforms (probably Windows 7 or better). Only the version for x86_64 comes with JIT enabled.
The two MSIs are available from http://rakudo.org/downloads/star/.

Posted in announce | Comments Off on Announce: Windows MSI Installers for release 2016.01

Announce: Rakudo Star Release 2016.01

On behalf of the Rakudo and Perl 6 development teams, I’m happy to announce
the January 2016 release of “Rakudo Star”, a useful and usable production
distribution of Perl 6. The tarball for the January 2016 release is available
from http://rakudo.org/downloads/star/.

This is the first post-Christmas (production) release of Rakudo Star and
implements Perl v6.c. It comes with support for the MoarVM backend (all module
tests pass on supported platforms).

Please note that this release of Rakudo Star is not fully functional with the
JVM backend from the Rakudo compiler. Please use the MoarVM backend only.

In the Perl 6 world, we make a distinction between the language (“Perl 6”) and
specific implementations of the language such as “Rakudo Perl”. This Star
release includes release 2016.01.1 of the Rakudo Perl 6 compiler, version
2016.01 of MoarVM, plus various modules, documentation, and other resources
collected from the Perl 6 community.

Some of the new compiler features since the last Rakudo Star release include:

  • Chained .grep calls on Supply fixed (RT #127297)
  • Fixed interaction with perl6-debug and precompilation that resulted in an
    endless loop
  • re-enabled warning when smart-matching against a True or False literal
  • Fixed internal error when reporting certain type errors (RT #127207)
  • Fixed rare “duplicate definition of symbol” errors (RT #127107)
  • Fixed interpolating of pairs with non-key strings into signatures
  • Fixed error when smart-matching Seq against a Set (RT #127166)
  • Improved error message when smart-matching against an S///-expression
  • Fixed bad interaction between EXPORTHOW and multiple declarations (RT #126566)
  • Fixed various issues regarding precompilation
  • Improved accuracy of Complex.sqrt
  • hyper now preserves order of results, as designed
  • Range.sum on an empty, numeric Range is now 0
  • Fixed Promise.allof() with an empty list of promises (RT #127101)
  • Improved message on premature virtual method call (RT #127097)
  • Better error message for module load failures of types that are part of the setting
  • Support for Readline in addition to Linenoise
  • Initial shaped array support
  • \r\n (Carriage Return/LineFeed) is now a single (synthetic) grapheme
  • Unicode support adheres to Unicode Annex #29
  • Unicode quotes are now also allowed in regular expressions
  • Improved newline support with “use newline” and updates to IO::Handle
  • Added List.head, List.tail, List.repeated methods
  • Str.encode now allows :replacement parameter for unencodable sequences
  • Str.split now accepts multiple strings to split on
  • New Range.int-bounds returns first/last value for integer ranges
  • Auto-generated meta-ops vivified by referring to them, instead of executing
  • Illegal assignment of different Numeric values now caught at compile time
  • &nextcallee implemented, which returns the routine that nextsame would invoke
  • Many speedups

Notable changes in modules shipped with Rakudo Star:

  • Bailador: The PSGI module by default now sets p6sgi instead of psgi
  • DBIish: Many fixes
  • Digest::MD5: Updated to conform to new newline handling
  • doc: p6doc -l added. p6doc now works for most non-core docs with pod
  • LWP::Simple: Replace “as Int” with proper coercion type to fix build
  • Linenoise: Many fixes
  • MIME::Base64: Adjust to pack being made experimental
  • panda: Large number of precomp and other bug fixes.  Now depends on 6.c
  • Template::Mojo: use MONKEY-SEE-NO-EVAL
  • Shell::Command: removed “as”

There are some key features of Perl 6 that Rakudo Star does not yet
handle appropriately, although they will appear in upcoming releases.
Some of the not-quite-there features include:

  • advanced macros
  • non-blocking I/O (in progress)
  • some bits of Synopsis 9 and 11

There is an online resource at http://perl6.org/compilers/features
that lists the known implemented and missing features of Rakudo’s
backends and other Perl 6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the
programmer that a given feature isn’t implemented, but there are many
that we’ve missed. Bug reports about missing and broken features are
welcomed at rakudobug@perl.org.

See http://perl6.org/ for links to much more information about
Perl 6, including documentation, example code, tutorials, reference
materials, specification documents, and other supporting resources.
Perl 6 tutorials are available under the “docs” directory in
the release tarball.

The development team thanks all of the contributors and sponsors for
making Rakudo Star possible. If you would like to contribute, see http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org
mailing list, or join us on IRC #perl6 on freenode.

Posted in announce | Comments Off on Announce: Rakudo Star Release 2016.01

Announce: Rakudo Star Release 2015.11 (now in beta!)

On behalf of the Rakudo and Perl 6 development teams, I’m happy to announce the November 2015 release of “Rakudo Star”, a useful and usable distribution of Perl 6. The tarball for the November 2015 release is available from http://rakudo.org/downloads/star/.

This Rakudo Star release comes with support for the MoarVM backend (all module tests pass on supported platforms).

In the Perl 6 world, we make a distinction between the language (“Perl 6”) and specific implementations of the language such as “Rakudo Perl”. This Star release includes release 2015.11 of the Rakudo Perl 6 compiler, version 2015.11 of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

Some of the new compiler features since the ast Rakudo Star release include:

  • There is now an infix:<.> operator that does method calls with slightly looser precedence than the postfix unary method call.
  • New operator infix o for function composition
  • fc for Unicode-correct case folding implemented
  • grep now accepts :k, :v, :kv, :p attributes
  • Supply.throttle for rate-limiting
  • Array.push is now used for pushing one element (mostly); Array.append exists for pushing multiple values. Same for unshift/prepend
  • Basic arithmetic operations (+, *, -, /) on Range objects that shift or scale the end points while maintaining exclusions
  • The v notation now allows alphabetic components: v1.2.beta. (Incompatible because method calls on a version must be protected by \ or () now.)
  • use v6b+; notation is now recognized and enforced
  • Many built-in methods that return iterables are now much faster
  • Better error messages when comparing version strings with numbers
  • Several error messages that were lacking line numbers now include them
  • Initial shaped array support
  • \r\n (Carriage Return/LineFeed) is now a single (synthetic) grapheme
  • Unicode support adheres to Unicode Annex #29
  • Unicode quotes are now also allowed in regular expressions
  • Improved newline support with “use newline” and updates to IO::Handle
  • Added List.head, List.tail, List.repeated methods
  • Str.encode now allows :replacement parameter for unencodable sequences
  • Str.split now accepts multiple strings to split on
  • New Range.int-bounds returns first/last value for integer ranges
  • Auto-generated meta-ops vivified by referring to them, instead of executing
  • Illegal assignment of different Numeric values now caught at compile time
  • &nextcallee implemented, which returns the routine that nextsame would invoke
  • Many speedups

The Rakudo Perl 6 compiler is now officially in beta for the upcoming production release around Christmas 2015.

Please note that this release of Rakudo Star is not fully functional with the JVM backend from the Rakudo compiler. Please use the MoarVM backend only.

Notable changes in modules shipped with Rakudo Star:

  • Bailador: Add MIT License
  • DBIish: Improved Windows support
  • doc: More documentation; generated HTML is better searchable
  • Template::Mustache: Switched from LGPL to Artistic License 2.0
  • panda: Default action is no longer install; better help messages
  • Digest::MD5: Now accepts non-ASCII input (internally encodes as Latin-1)
  • LWP::Simple: Support for successful return codes besides 200
  • Shell::Command: which routine for locating executables
  • Updated docs/2015-spw-perl6-course.pdf from Nov 21

There are some key features of Perl 6 that Rakudo Star does not yet handle appropriately, although they will appear in upcoming releases. Some of the not-quite-there features include:

  • advanced macros
  • non-blocking I/O (in progress)
  • much of Synopsis 9 and 11

There is an online resource at http://perl6.org/compilers/features that lists the known implemented and missing features of Rakudo’s backends and other Perl 6 implementations.

In many places we’ve tried to make Rakudo smart enough to inform the programmer that a given feature isn’t implemented, but there are many that we’ve missed. Bug reports about missing and broken features are welcomed at rakudobug@perl.org.

See http://perl6.org/ for links to much more information about Perl 6, including documentation, example code, tutorials, reference materials, specification documents, and other supporting resources. A Perl 6 tutorial is available as docs/2015-spw-perl6-course.pdf in the release tarball.

The development team thanks all of the contributors and sponsors for making Rakudo Star possible. If you would like to contribute, see http://rakudo.org/how-to-help, ask on the perl6-compiler@perl.org mailing list, or join us on IRC #perl6 on freenode.

Posted in announce | Comments Off on Announce: Rakudo Star Release 2015.11 (now in beta!)