aboutsummaryrefslogtreecommitdiff
path: root/docs/announce/2015.03.md
blob: dd9038be6174452dd7914502f6b20f5a8bac108c (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
# Announce: Rakudo Star Release 2015.03

## A useful, usable, "early adopter" distribution of Perl 6

On behalf of the Rakudo and Perl 6 development teams, I'm happy to
announce the March 2015 release of "Rakudo Star", a useful and usable
distribution of Perl 6. The tarball for the March 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) along with
experimental support for the JVM backend (the modules `Bailador`,
`Digest::MD5` and `Grammar::Profiler::Simple` are known to fail tests).

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

[release 2015.03]:
    https://github.com/rakudo/rakudo/blob/nom/docs/announce/2015.03.md
[Rakudo Perl 6 compiler]: http://github.com/rakudo/rakudo
[MoarVM]: http://moarvm.org/

Some of the new compiler features added to this release include:

+ several renames of semi-internal methods. Please refer to [the Rakudo
  2015.02 release notes](https://github.com/rakudo/rakudo/blob/nom/docs/announce/2015.03.md) for the full list
+ Allow `Buf.AT-POS` to return an l-value.
+ Implement `method ^foo($) { ... }` syntax.
+ Implemented [PairMap](http://doc.perl6.org/type/PairMap) (the simple case only, for now).
+ Implemented `.antipairs` (pairs with value => key).
+ Implemented [pairup](http://doc.perl6.org/type/Any#method_pairup) for creating pairs from lists.
+ Implemented `LEXICAL`, `OUTERS` and `CALLERS` pseudo-packages
+ Add `array[T]`, usable for native `int`/`num` (MoarVM only for now)
+ Other native improvements, e.g. `my int $a; $a++`
+ Implement `IO::Path.resolve` on r-m/POSIX

In future, the `nqp::` namespace willl only be available after a declaration
like `use nqp;`.

Changes to modules included in Rakudo Star:

- [DBIish](https://github.com/perl6/DBIish) supports local Sockets on mysql,
  and now correctly handles returned NULL values in the Pg backend
- [doc](https://github.com/perl6/doc) ships with much more documentation

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
  * threads and concurrency (in progress)
  * Unicode strings at levels other than codepoints
  * interactive readline that understands Unicode
  * 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
draft of a Perl 6 book is available as docs/UsingPerl6-draft.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.