Skip to content


Subversion checkout URL

You can clone with
Download ZIP
100644 103 lines (77 sloc) 4.28 KB
755eb94 @sorear Add draft of v3 announcement
1 Announce: Niecza Perl 6 v3
3 This is the third announcement of a distinguished Niecza version, and
4 we seem to be settling into a routine here. *Yay* On the other hand,
5 I didn't get around to doing as much as I wanted this month. Niecza tag
6 announcements occur on the last Monday of each month.
8 You can obtain a build of Niecza from [1]. This build contains a
9 working compiler as a set of .exe and .dll files suitable for use with
10 Mono or Microsoft .NET. If you wish to follow latest developments,
11 you can obtain the source from [2]; however, you will still need a
12 binary for bootstrapping, so you gain nothing from a "source is
13 better" perspective.
15 Niecza is a Perl 6 compiler project studying questions about the
16 efficient implementability of Perl 6 features. It currently targets
17 the Common Language Runtime; both Mono and Microsoft .NET are known to
7016f56 @diakopter slight tweaks to docs/announce.v3
diakopter authored
18 work. On Windows, Cygwin is required for source builds only; see the
19 README for details.
755eb94 @sorear Add draft of v3 announcement
21 List of changes
23 Control operators with labels are now available, and function lexotically
24 as described in S04. This is possibly the first implementation of
25 lexotics. (Yes, attaching labels to loops and statements is now supported.
26 I'm not *that* cheap.) The goto statement is also supported.
28 The given/when structure is now available. Sorry, but there's no jump
29 table generation yet - a given with N equally likely cases will take
30 O(N) time. This includes succeed and proceed.
32 Niecza follows the recent S05 change to not generate lists for the
33 "?" quantifier. This will probably break most of your regex code.
35 Control operators will be translated into low-level jumps if no stack
36 unwinding is required; return statements are no longer at all expensive.
38 The regular expression forms rx//, m//, and s/// are now supported.
40 Several more metaoperators are supported, specifically Z+, X+, and [+].
41 The non-meta versions of Z and X of course came with the deal.
43 Here-documents are now deindented in a way that approximates S02.
45 Callwith and callsame are now supported.
47 Generation of "unsafe" code in the CLR backend has been turned off by
48 default.
50 New loops and conditionals: unless, repeat/while, repeat/until, loop.
52 Decimal literals like 1.5e2 parse now.
54 Indirect regex calls of the <&foo> form are supported now.
56 Many more passing spectests (over a thousand).
58 Minor stuff:
59 * Various improvements to nam documentation.
60 * ~~ now binds $_ in its right side.
61 * Using a match operation without subcaptures in list context has been
62 special-cased to DWME (Do What Moritz Expects). Hopefully it will be
63 less suprising to you, too.
64 * 1 [+] 2 now warns. (It means the same as 1 + 2)
65 * The TODO lists have been reorganized and are hopefully more useful.
66 * et al now impose list etc context as they should.
67 * Sigilled constants behave in a slightly more useful way.
68 * %() can now turn a list of pairs into a hash.
69 * qw[] et al are now parsed correctly.
7016f56 @diakopter slight tweaks to docs/announce.v3
diakopter authored
70 * return now takes multiple arguments (and handles them like Rakudo does)
755eb94 @sorear Add draft of v3 announcement
71 * ++ and -- are polymorphic using .succ and .pred.
72 * Any.join defaults separator to ""
73 * ucfirst and lcfirst have been added
74 * Capture expressions (and Capture.perl) are now supported.
76 Really minor stuff:
77 * There's an [auto-compiling setting] notice, so you won't think the
78 compiler has hung on Hello World.
79 * Starting to clean up the nieczaisms in niecza's STD.pm6
80 * The frontend no longer generates invalid JSON. (Oops!)
81 * is readonly is now parsed and ignored.
83 Getting involved
85 Contact sorear in #perl6 or via the sender address of
86 this mailing. Also check out the TODO file; whether you want to work
87 on stuff on it, or have cool ideas to add to it, both are good.
89 Future directions
91 Next month's first priorities will be a development of a usable stopgap
92 eval and a reasonable way to install Niecza. Since 6model integration
93 was not completed last month, it is still on the agenda. That will mean
94 copying Jonathan Worthington's "6model" design to whatever extent is
95 reasonable; subtypes, role composition, type constraints on variables,
96 type constraints on parameters, enums, multiple dispatch, and
97 representation polymorphism will be implemented.
99 Much more focus on spectest support is also expected in the coming weeks.
101 [1]
102 [2]
Something went wrong with that request. Please try again.