Announce: Rakudo Star Release 2017.10

A useful and usable production distribution of Perl 6

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

Binaries for macOS and Windows (64 bit) are also available at the same location.

This is a 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). Currently, Star is on a quarterly release cycle.

IMPORTANT: “panda” has been removed from this release since it is deprecated. Please use “zef” instead.

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 2017.10 of the Rakudo Perl 6 compiler, version 2017.10 MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

The Rakudo compiler changes since the last Rakudo Star release of 2017.07 are now listed in “2017.08.md”, “2017.09.md”, and “2017.10.md” under the “rakudo/docs/announce” directory of the source distribution.

Notable changes in modules shipped with Rakudo Star:

+ DBIish: Newer version (doesn't work with 2017.01 anymore)
+ Test-META: New. also dependencies (JSON-Class, JSON-Marshal, JSON-Name, JSON-Unmarshal and META6)
+ doc: Too many to list. p6doc-index merged into p6doc and index built on first run.
+ p6-Template-Mustache: Fixed on Windows.
+ panda: Removed. Stub added to warn about this.
+ perl6-datetime-format: New (heavily used in ecosystem)
+ perl6-file-which: Fixed tests on Windows
+ tap-harness6: Many fixes.
+ zef: New version with many fixes

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 (now works for sockets and process)
  • 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 https://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 2017.10

Main Development Branch Renamed from “nom” to “master”

If you track latest rakudo changes by means of a local checkout of the development repository, please take notice that we renamed our unusually-named main development branch from nom to the more traditional name master

This branch will now track all the latest changes. Attempting to build HEAD of the nom branch will display a message at some point during the build stage, informing that the branch was renamed. The build will then wait for user to press ENTER if they want to continue.

It’s expected this change will cause some fallout and this page will be updated with any useful instructions, as needed. For more information join our #perl6-dev IRC chat channel on irc.freenode.net


UPDATE 1: the blocking message has been disabled for now, to avoid too much impact on any of the bleeding edge users’ automations.


Rakudobrew

Rakudobrew has been updated to default to master branch now. Note that you need to upgrade rakudobrew to receive that change; run rakudobrew self-upgrade

Until updated, rakudobrew‘s standard instructions will build the no-longer actively updated nom branch.

To build latest and greatest rakudo use rakudobrew build moar master instead of rakudobrew build nom. In general, we advise against using rakudobrew if the goal is simply to track development version of the compiler. Instead, we recommend to build directly from repository. Regular end-users should continue using pre-built Rakudo Star distributions.

Posted in notices | Comments Off on Main Development Branch Renamed from “nom” to “master”

Announce: Rakudo Star Release 2017.07

A useful and usable production distribution of Perl 6

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

Binaries for macOS and Windows (64 bit) are also available.

This is the eighth 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).

IMPORTANT: “panda” is to be removed very shortly since it is deprecated. Please use “zef” instead.

Currently, Star is on a quarterly release cycle and 2017.10 (October) will follow later this year.

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 2017.07 of the Rakudo Perl 6 compiler, version 2017.07 MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

Note this Star release contains NQP version 2017.07-9-gc0abee7 rather than the release NQP 2017.07 in order to fix the –ll-exception command line flag.

The Rakudo compiler changes since the last Rakudo Star release of 2017.01 are now listed in “2017.05.md”, “2017.06.md” and “2017.07.md” under the “rakudo/docs/announce” directory of the source distribution.

Notable changes in modules shipped with Rakudo Star:

+ DBIish: Doc and CI updates
+ doc: Too many to list. p6doc fixed.
+ grammar-debugger: Works again now.
+ p6-io-string: New dep for doc.
+ p6-native-resources: Removed since deprecated and not used by linenoise.
+ panda: Officially deprecate panda in favour of zef.
+ perl6-Test-When: New dep for perl6-pod-to-bigpage.
+ perl6-lwp-simple: Fix breakage due to rakudo encoding refactor.
+ tap-harness6: Replaces deprecated tap-harness6-prove6.
+ zef: Too many to list.

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 https://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 2017.07

Announce: Rakudo Star Release 2017.04

A useful and usable production distribution of Perl 6

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

Binaries for macOS and Windows (64 bit) are also available.

This is the seventh 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).

This release includes “zef” as module installer. “panda” is to be shortly replaced by “zef” and will be removed in the near future.

It’s hoped to produce quarterly Rakudo Star releases during 2017 with 2017.07 (July) and 2017.10 (October) to follow.

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 2017.04.3] of the Rakudo Perl 6 compiler, version 2017.04-53-g66c6dda of MoarVM, plus various modules, documentation, and other resources collected from the Perl 6 community.

The Rakudo compiler changes since the last Rakudo Star release of 2017.01 are now listed in “2017.02.md” and “2017.04.md” under the “rakudo/docs/announce” directory of the source distribution.

In particular this release featured many important improvements to the IO subsystem thanks to Zoffix and the support of the Perl Foundation.

Please see
Part 1: http://rakudo.org/2017/04/02/upgrade
Part 2: http://rakudo.org/2017/04/03/part-2
Part 3: http://rakudo.org/2017/04/17/final-notes

Note there were point releases of 2017.04 so also see “2017.04.1.md”, “2017.04.2.md” and “2017.04.3.md”.

Notable changes in modules shipped with Rakudo Star:

+ DBIish: New version with pg-consume-input
+ doc: Too many to list. Large number of “IO Grant” doc changes.
+ json\_fast: Too many to list. Big performance improvements.
+ perl6-lwp-simple: Fix for lexical require and incorrect regex for absolute URL matcher
+ test-mock: Enable concurrent use of mock objects
+ uri: Encoding fixes
+ zef: Too many to list. IO fixage.

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 https://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 2017.04

PART 3: Information on Changes Due to IO Grant Work

The IO grant work is at its wrap up. This note lists some of the last-minute changes to the plans delineated in earlier communications ([1], [2], [3]). Most of the listed items do not require any changes to users’ code.

  • We implemented IO::Path.sibling
  • The promised IO::Path.concat-with was instead added as the much shorter IO::Path.add. Due to large ecosystem usage, IO::Path.child was left as is for now. The secure version is already written and .child will be swapped to use it later on; possibly around 6.d time. This will allow more time for users to update to the .add routine, where the secureness isn’t needed.
  • &mkdir multi candidate that takes a list of directories has been removed. IO::Path.mkdir has been changed to return the invocant on success, to mirror the subroutine form’s behaviour
  • The changes to &symlink and &link affected IO::Path.symlink and IO::Path.link as well. The new order of arguments is $existing-thing.symlink: $the-new-thing-we're-creating (same for .link)
  • role IO was promised to be removed. Essentially it was, none of the types that did it do it anymore. However, the role was brought back, to be done by IO::Path and IO::Special. The role provides no methods, but when we’ll make our coercers type-check the results of the coercion, we’ll need IO::Path to be of type IO, or all of our shiny IO() coercers will explode. As IO::Special is meant to be a fake-IO::Path-lite, it does IO role as well.
  • Many of the IO routines were changed from taking Str arguments to taking IO() arguments (Str coerces to IO just fine, so no changes to code are needed on your part). When paths are given as IO::Paths, this avoids needless waste of cycles to convert the IO::Path to Str and then to IO::Path again. More importantly, since IO::Path.Str doesn’t consider $.CWD into account, this fixes all potential bugs where the IO::Path given as arg was created with $.CWD other than current $*CWD

Help and More Info

If you need help or more information, please join our IRC channel and ask there. You can also contact the person performing this work via Twitter @zoffix or by talking to user Zoffix in our dev IRC channel

Posted in Uncategorized | Comments Off on PART 3: Information on Changes Due to IO Grant Work

PART 2: Upgrade Information for Changes Due to IO Grant Work

We’re making more changes!

Do the core developers ever sleep? Nope! We keep making Perl 6 better 24/7!

Why?

Not more than 24 hours ago, you may have read Upgrade Information for Changes Due to IO Grant Work. All of that is still happening.

However, it turned out that I, (Zoffix), had an incomplete understanding of how changes in 6.d language will play along with 6.c stuff. My original assumption was we could remove or change existing methods, but that assumption was incorrect. Pretty much the only sane way to incompatibly change a method in an object in 6.d is to add a new method with a different name.

Since I rather us not have, e.g. .child and .child-but-secure, for the next decade, we have a bit of an in-flight course correction:

ORIGINAL PLAN was to minimize incompatibilities with existing 6.c language code; leave everything potentially-breaking for 6.d

NEW PLAN is to right away add everything that does NOT break 6.c-errata specification, into 6.c language; leave everything else for 6.d. Note that current 6.c-errata specification for IO is sparse (the reason IO grant is running in the first place), so there’s lots of wiggle room to make most of the changes in 6.c.

When?

I (Zoffix) still hope to cram all the changes into 2017.04 release. Whether that’s overly optimistic, given the time constraints… we’ll find out on April 17th. If anything doesn’t make it into 2017.04, all of it definitely will be in 2017.05.

What?

Along with the original list in first Upgrade Information Notice, the following changes may affect your code. I’m excluding any non-conflicting changes.

  • IO::Path.abspath is being made private. Use IO::Path.absolute instead; it provides the same functionality + lets you optionally provide a different CWD as well.
  • It was previously possible to use IO::Path.child to create unresolvable paths or paths that are not the children of the invocant’s path (e.g. .child: "../../"). This use now causes the method to fail instead, any time the path cannot be determined to be the child of the invocant. This means the path will be fully resolved and the method will fail if it can’t resolve it. For original functionality, use the newly-added .concat-with method
  • All IO routines now throw typed exception instead of X::AdHoc
  • We’re adding a generic version of IO::ArgFiles called IO::CatHandle (name still subject to bikeshedding) which is IO::Handle. The IO::ArgFiles class will be kept for compatibility, but it’ll be just an empty class that is IO::CatHandle. Note that this may modify what methods are available in IO::ArgFiles, however existing methods that aren’t horribly broken should not be affected.
  • This likely does not affect any code, but FYI IO::Path‘s methods lines, words, split, and comb previously captured most args and sent them all to IO::Handle.open. Now, only the arguments that make sense in read-only non-binary mode, namely :$chomp, :$enc, and $nl-in, will be forwarded. The rest will be ignored.

Potential changes:

  • Currently IO::Path.is-absolute on Windows returns True if the path starts with a [back]slash (without any drive letters). There’s some chance this is to be changed to return False instead. This is the only change in direct conflict with 6.c language specification, which is why the current behaviour might be kept unchanged, unless it’s deemed incorrect.

Changes for 6.d language:

  • IO::Handle and IO::Pipe‘s .slurp-rest method is being renamed to just .slurp, which will be added in 6.c language. In 6.d language, .slurp-rest will be deprecated, to be removed in later language versions.
  • IO::Path.chdir will be deprecated in 6.d language, to be removed in later language versions. It’s a misnomer, as it doesn’t change any dirs. It merely creates a new path. Its behaviour can be replaced with one or more of .new, .concat-with, .d, .r, .w, and .x methods. Note that this does NOT affect `&chdir` and `&*chdir` subroutines.
  • There’s some chance IO::Spec::* classes will be deprecated in 6.d, to be removed in a later language version, because they’re internal-ish. We’ll first have a trial run with the proposed changes implemented in a module (to be named FastIO). If the module offers a lot of benefits, there will be a discussion on how to make it the default implementation for core IO.

Help and More Info

If you need help or more information, please join our IRC channel and ask there. You can also contact the person performing this work via Twitter @zoffix or by talking to user Zoffix in our dev IRC channel

Posted in notices | Comments Off on PART 2: Upgrade Information for Changes Due to IO Grant Work

Upgrade Information for Changes Due to IO Grant Work

As previously notified, there are changes being made to IO routines. This notice is to provide details on changes that may affect currently-existing code.

When?

Barring unforeseen delays, the work affecting version 6.c language is planned to be included in 2017.04 Rakudo Compiler release (planned for release on April 17, 2017) on which next Rakudo Star release will be based.

Some or all of the work affecting 6.d language may also be included in that release and will be available if the user uses use v6.d.PREVIEW pragma. Any 6.d work that doesn’t make it into 2017.04 release, will be included in 2017.05 release.

If you use development commits of the compiler (e.g. rakudobrew), you will
receive this work as-it-happens.

Why?

If you only used documented features, the likelihood of you needing to change any of your code is low. The 6.c language changes due to IO Grant work affect either routines that are rarely used or undocumented routines that might have been used by users assuming they were part of the language.

What?

This notice describes only changes affecting existing code and only for 6.c language. It does NOT include any non-conflicting changes or changes slated for 6.d language. If you’re interested in the full list of changes, you can find it in the IO Grant Action Plan

The changes that may affect existing code are:

  • role IO together with its IO.umask method have been removed without any replacement
  • Methods .watch, .chmod, .IO, .e, .d, .f, .s, .l, .r, .w, .x, .modified, .accessed, .changed, and .mode have been removed from IO::Handle. You can call these on the path returned by IO::Handle.path method to obtain the same behaviour
  • :test parameter on &chdir, IO::Path.chdir, and &indir routines have been changed to issue a deprecation warning and will be removed in 6.d language. In addition, the default test performed by these routines has been changed to be only a test for whether the path is a directory. To upgrade your code for this change, simply use named parameters for the test. e.g replace chdir :test<r w x> … with chdir :r, :w, :x …
  • binary mode in IO::Handle.Supply is now controlled by whether the handle
    is in binary mode (e.g. opened with .open(:bin …)). The :bin argument to .Supply is now ignored.
  • In 2017.03 release, IO::Path.lines was made non-lazy (slurps the whole file). This has now been reverted. To ensure the filehandle gets closed, you need to exhaust the returned Seq (simply iterate through it; eager it explicitly or implicitly (e.g. by assigning to array); or call .sink on it)
  • The order of arguments to &link and &symlink has been reversed. It now follows $existing-thing, $thing-we-are-creating pattern adhered to by ln command line tool as well as &move, &copy and &rename routines
  • IO::Handle.lock no longer takes an Int:D argument, but a pair of named arguments instead. By default, it makes an exclusive, blocking lock. Use :shared named argument to make a shared lock instead and :non-blocking to make the method fail instead of waiting for lock.
  • IO::Path.new-from-absolute-path is now a private method. Use .IO coercer or IO::Path.new: $the-path instead
  • &homedir has been removed. Use $*HOME dynamic variable directly.
  • &tempdir has been removed. Use $*TMPDIR dynamic variable directly.
  • IO routines that used to throw will now fail instead.

Help and More Info

If you need help or more information, please join our IRC channel and ask there. You can also contact the person performing this work via Twitter @zoffix or by talking to user Zoffix in our dev IRC channel

Posted in notices | Comments Off on Upgrade Information for Changes Due to IO Grant Work

Upgrade Information for Lexical require

Upgrade Information for Lexical require

What’s Happening?

Rakudo Compiler release 2017.03 includes the final piece of lexical module loading work: lexical require. This work was first announced in December, in http://rakudo.org/2016/12/17/lexical-module-loading/

There are two changes that may impact your code:

  • require now imports symbols lexically. If you require inside a block, the symbols won’t be available outside of it.
  • Compile-time require installs a placeholder package symbol that remains available even if required item was not found.

Upgrade Information

Lexical Symbols

WRONG:

# WRONG:
try { require Foo; 1 } and ::('Foo').new;

The require above is inside a block and so its symbols won’t be available
outside of it and the look up will fail.

CHANGE TO:

(try require Foo) !=== Nil and ::('Foo').new;

Now the require installs the symbols into scope that’s lexically accessible
to the ::('Foo') look up.

Optional Loading

WRONG:

# WRONG:
try require Foo;
if ::('Foo') ~~ Failure {
    say "Failed to load Foo!";
}

This construct installs a package named Foo, which would be replaced by the
loaded Foo if it were found, but if it weren’t, the package will remain a
package, not a Failure, and so the above ~~ test will always be False.

CHANGE TO:

# Use return value to test whether loading succeeded:
(try require Foo) === Nil and say "Failed to load Foo!";

# Or use a run-time symbol lookup with require, to avoid compile-time
# package installation:
try require ::('Foo');
if ::('Foo') ~~ Failure {
    say "Failed to load Foo!";
}

In the first example above, we test the return value of try isn’t Nil, since
on successful loading it will be a Foo module, class, or package.

The second example uses a run-time symbol lookup in require and so it never needs
to install the package placeholder during the compile time. Therefore, the
::('Foo') ~~ test does work as intended.

Help and More Info

If you require help or more information, please join our chat channel
#perl6 on irc.freenode.net

Posted in notices | Comments Off on Upgrade Information for Lexical require

Advance Notice of Significant Changes

Advance Notice of Significant Changes

As part of the IO grant run by The Perl Foundation, we’re improving our IO-related methods and subroutines. We’ve identified several of the changes that will have moderate
impact on the users and may require you to update your code.

The exact changes to be made will be known by March 18th, 2017 and the
implementation will be part of the 2017.04 Rakudo compiler release on April,
15th, which will be followed by the 2017.04 Rakudo Star Perl 6 release.

Details

Why Are We Changing Stuff?

Our contract with the users is we don’t change anything that’s covered
by the Perl 6.c language version tests. This means most of the language
remains reliably stable, but IO features got short-changed on the love. The
tests for them are sparse—a big reason why the IO grant is running in the
first place—which gives core developers a lot of freedom to change them
and to improve them.

Despite that freedom, we realize broken code isn’t a nice thing, and will
attempt to reduce the impact of the changes, by providing backwards compatible
interface to support old API, where feasible. Where not, we will provide
information of the upcoming changes; this notice is a part of that effort.

What’s Changing?

The grant covers all of IO routines and methods (excluding sockets). All of the
final changes are yet to be deliberated and ratified and we’ll share the
details once they’re known.

Currently, it is speculated that link() routine will change the order
of arguments (no backwards compatible support will be provided) and seek()
routine will take seek reference as a named argument instead of an enum value
(backwards compatible support will be provided).

It’s very likely many more changes will be made. We’ll be using the code of
all the modules in the ecosystem to judge the potential impact of the change
and evaluate each change on a case-by-case basis.

Timeline

  • March 18, 2017: finalized information on the changes will be known to the
    Core Team. Upgrade instructions for users will follow shortly after.
  • April 15, 2017: all of the changes will be completed and 2017.04
    compiler release will be made. Rakudo Star Perl 6 distribution will
    be created from this release in the following week or two.

Help and More Info

If you need help or more information, please join our IRC channel and ask there. You can also contact the person performing this work via Twitter @zoffix (Zoffix on IRC in #perl6-dev)

Posted in notices | Comments Off on Advance Notice of Significant Changes

Announce: Rakudo Star Release 2017.01

A useful and usable production distribution of Perl 6

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

Binaries for macOS and Windows (64 bit) are also available.

This is the sixth 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).

This is the first Rakudo Star release to include “zef” as module installer. “panda” is to be shortly replaced by “zef” and will be removed in the near future.

It’s hoped to produce quarterly Rakudo Star releases during 2017 with 2017.04 (April), 2017.07 (July) and 2017.10 (October) to follow.

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 2017.01] of the [Rakudo Perl 6 compiler], version 2017.01 of [MoarVM], plus various modules, documentation, and other resources collected from the Perl 6 community.

The Rakudo compiler changes since the last Rakudo Star release of 2016.11 are now listed in “2016.12.md” and “2017.01.md” under the “rakudo/docs/announce” directory of the source distribution.

Notable changes in modules shipped with Rakudo Star:

+ DBIish: Pg: TypeConverter post-merge cleanup
+ Linenoise: Remove dependency on Native::Resources
+ Pod-To-HTML: Bump version for #22 fix
+ Terminal-ANSIColor: Drop ‘nqp’ dependency
+ doc: Too many to list
+ json: Fix parsing of string literals with a leading combining character.
+ json\_fast: bump version since we now escape null bytes
+ panda: modified to warn of its removal in the short term
+ perl6-http-easy: Several pull requests merged
+ perl6-lwp-simple: Tweak tests to work with TAP::Harness
+ perl6-pod-to-bigpage: bump version
+ test-mock: Bump version.
+ zef: imported

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 2017.01