aboutsummaryrefslogtreecommitdiff
path: root/docs/announce/2012.11
blob: 60a1f400dc422a4501328f8640d1ba948a2cf94b (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
Announce: Rakudo Star - 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 November 2012 release of "Rakudo Star", a useful and
usable distribution of Perl 6.  The tarball for the November 2012
release is available from <http://github.com/rakudo/star/downloads>.
A Windows .MSI version of Rakudo star will usually appear in
the downloads area shortly after the tarball release.

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 2012.11 [0] of the
Rakudo Perl 6 compiler [1], version 4.6.0 of the Parrot Virtual
Machine [2], and various modules, documentation, and other
resources collected from the Perl 6 community.

Some of the new features added to this release include:

* heredocs

* quote adverbs (like q:w//)

* implemented precedence related traits (equiv, looser, tighter, assoc)

* Perl 6 grammar NFAs are pre-computed, saving some work on each
  invocation; this shaved around 10% off the time needed to run the spectests

* regexes and quotes have better support for user-selected delimiters

* FIRST/NEXT/LAST can now be used in all types of loop (previously
  limited to for)

* several fixes related to module precompilation. This should make working
  with larger code bases much less painful.

This release also contains a range of performance improvements, bug fixes,
improvements to error reporting and better failure modes. 

The following features have been deprecated or modified from previous
releases due to changes in the Perl 6 specification, and are being removed
or changed as follows:

* at present, a reference to an &foo that does not exist evalutes to Nil.
  This will become a CHECK-time failure, in line with STD.

* Unary hyper ops currently descend into nested arrays and hashes.
  This will change to make them equivalent to a one-level map.

* ~/.perl6/lib will go away from the default include path (@*INC).
  Instead %*CUSTOM_LIB now holds paths to four library locations:
      perl    Rakudo installs its core modules here
      vendor  OS-level package managers should install their modules here
      site    for local module installations (e.g. with panda or ufo)
      home    like site, but always under the user's home directory.
              fallback if site isn't writable.

* The Str.ucfirst builtin is deprecated; it will be replaced by Str.tc.

* Leading whitespace in rules and under :sigspace will no longer be
  converted to <.ws> .  For existing regexes that expect this conversion,
  add a <?> in front of leading whitespace to make it meta again.

* The ?-quantifier on captures in regexes currently binds the capture
  slot to a List containing either zero or one Match objects; i.e., it
  is equivalent to "** 0..1".  In the future, the ?-quantifier will
  bind the slot directly to a captured Match or to Nil.  Existing code
  can manage the transition by changing existing ?-quantifiers to
  use "** 0..1", which will continue to return a List of matches.

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
  * Unicode strings at levels other than codepoints
  * interactive readline that understands Unicode
  * non-blocking I/O
  * much of Synopsis 9

There is an online resource at http://perl6.org/compilers/features 
that lists the known implemented and missing features of Rakudo 
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.

[0] https://github.com/rakudo/rakudo/blob/nom/docs/announce/2012.11
[1] http://github.com/rakudo/rakudo
[2] http://parrot.org/