Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 156 lines (92 sloc) 4.921 kb
43fb0e8 Stefan O'Rear First draft of announce.v13
authored
1 Announce: Niecza Perl 6 v13
2
3 This is the thirteenth release of Niecza Perl 6, as usual scheduled on
4 the last Monday of the month. I'm on winter break now, which means lots
5 of time for improvements. Muahahaha. A large portion of the improvements
6 have been in regular expression support.
7
5a663d0 Stefan O'Rear Add blurb about roast progress, link to flussence++ chart
authored
8 Will Coleda and Solomon Foster are working on fudging spectests so they run on
9 Niecza; between that and actual improvements, we've gained 5000+ working
10 spectests since the last release. See [4] for a dramatic visual.
11
12
43fb0e8 Stefan O'Rear First draft of announce.v13
authored
13 You can obtain a build of Niecza from [1]. This build contains a
14 working compiler as a set of .exe and .dll files suitable for use with
15 Mono or Microsoft .NET. If you wish to follow latest developments,
16 you can obtain the source from [2]; however, you will still need a
17 binary for bootstrapping, so you gain nothing from a "source is
18 better" perspective.
19
20 Niecza is a Perl 6 compiler project studying questions about the
21 efficient implementability of Perl 6 features. It currently targets
22 the Common Language Runtime; both Mono and Microsoft .NET are known to
23 work. On Windows, Cygwin is required for source builds only; see the
24 README for details.
25
26
27 List of changes
28
29
30
31 [Breaking changes]
32
33 / <{ foo }> / is no longer accepted as a synonym for / <?{ foo }> /.
34
35 $0 is no longer allowed to mean $/ when there is no capture zero.
36
37 $/.ast no longer defaults to ~$/. Use $() if you want that.
38
39
40
41 [Major features]
42
43 New-style character class expressions like <:Uppercase & :Greek> are
44 now supported.
45
46 Unicode property access is now supported! In addition to the use in
47 regexes, there is also a minimal Niecza::UCD module which allows querying
48 the properties of characters. All non-Unihan properties defined in
49 Unicode 6.0.0 are available.
50
51 Runtime number parsing has been radically extended and now supports the
52 full gamut of Perl 6 number syntaxes.
53
54
55
56 [Minor features]
57
58 Supplementary characters are now generally supported, though StrPos-type
59 counting for chars, substr, etc is still in UTF-16 code units.
60
61 codes is now available, for when you need to actually count code points
62 (be aware that it is O(n)).
63
64 The regex infix operators & and && are now supported (currently treated
65 as synonyms, but don't rely on this).
66
67 &pow is a little bit smarter and needlessly returns NaN in fewer cases
68 (Solomon Foster, Stefan O'Rear).
69
70 Imported a few tweaks from STD, including a better message for say$_.
71
72 \h \v \s \w and \d now use the recommended UTS18[3] definitions.
73
74 \n, $$, and ^^ now match any vertical whitespace, including CRLF as
75 a single unit.
76
77 % is now supported for all quantifiers and %% is available too.
78
79 $() @() %() are now supported.
80
81 /$var/ now allows $var to be a Regex. Likewise /<$var>/, /@var/,
82 and /<@var>/ have been added. / <{...}> / now does the right thing.
83
84 The implementation of $<foo>=[...] has been considerably simplified
85 and depessimized.
86
87 / <.$foo> / assertion syntax is now supported.
88
89 / <foo> / will now call a lexical "my regex foo" if possible. To minimize
90 potential accidents, this applies ONLY to regexes, tokens, and rules;
91 despite using the same namespace, a "my sub foo" will not be called.
92
93 / <&foo(...)> / now allows arguments.
94
95 @<foo> now correctly contextualizes.
96
97 Nontrivial regex protos, like "proto regex foo { "bar" {*} }", are now
98 implemented.
99
100 <( and )> are now supported.
101
102 Added Match methods: kv, keys, values, caps, chunks, prematch, postmatch.
103
104 Added \c[] syntax in strings and regexes.
105
106 Rat and FatRat now stringify as fractions.
107
108 Inf now stringifies as "Inf" rather than leaking C# Infinity.
109
110 Added predefined quasi-property rules like <alnum>.
111
112 Added Niecza::Benchmark, providing the barest minimum of functionality like
113 Perl 5's "Benchmark".
114
115 Inf, NaN correctly handled in rounding, Cool.truncate, &kv, Pair.invert,
116 &srand, allow :x(*) in subst, .chr, .ord, .chrs, .ords, &chrs, &ords,
117 trim methods, &roll, .roll(*), end, min, max, minmax (Solomon Foster)
118
119 Added .pick(*), corrected Str and Numeric for Range (Will Coleda)
120
121 classify (Moritz Lenz)
122
123
124
125 [Selected bug fixes]
126
127 Threads.pm6 is working again, now with exception-safe locking.
128
129
130
131 [Other]
132
133 There is now documentation on how to prepare releases.
134
135
136 Getting involved
137
138 Contact sorear in irc.freenode.net #perl6 or via the sender address of
139 this mailing. Also check out the TODO file; whether you want to work
140 on stuff on it, or have cool ideas to add to it, both are good.
141
142 Future directions
143
144 My current priorities are:
145 1. Make regexes much more feature-complete, including general Unicode
146 properties and grapheme mode
147 2. Prototype the debugger
148 3. 6model convergence work, including roles/native types
149 4. Figure out how modules and S11 stuff should work in Niecza. Do it.
150
151
5a663d0 Stefan O'Rear Add blurb about roast progress, link to flussence++ chart
authored
152 [1] https://github.com/downloads/sorear/niecza/niecza-13.zip
43fb0e8 Stefan O'Rear First draft of announce.v13
authored
153 [2] https://github.com/sorear/niecza
154 [3] http://www.unicode.org/reports/tr18/
5a663d0 Stefan O'Rear Add blurb about roast progress, link to flussence++ chart
authored
155 [4] https://github.com/flussence/specgraphs/raw/master/impls.png
Something went wrong with that request. Please try again.