aboutsummaryrefslogtreecommitdiff
path: root/docs/announce/2016.07.md
blob: e5eae4c1a6df99da403419dbab308a2c6257803a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Announce: Rakudo Star Release 2016.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 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.

[release 2016.07]: https://raw.githubusercontent.com/rakudo/rakudo/2016.07/docs/announce/2016.07.md
[Rakudo Perl 6 compiler]: http://github.com/rakudo/rakudo
[MoarVM]: http://moarvm.org/

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

  * Ability to use a customer 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 none-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

Notable changes in modules shipped with Rakudo Star:

  * blah blah blah

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.