Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 89 lines (68 sloc) 3.31 kB
a87fbf8 @sorear Add a draft for the v2 announce
authored
1 Announce: Niecza Perl 6 v2
2
3 This is the second announcement of a distinguished Niecza version, and
4 the first to be regularly scheduled. Niecza tag announcements occur
5 on the last Monday of each month.
6
7 You can obtain a build of Niecza from [1]. This build contains a
8 working compiler as a set of .exe and .dll files suitable for use with
9 Mono or Microsoft .NET. If you wish to follow latest developments,
10 you can obtain the source from [2]; however, you will still need a
11 binary for bootstrapping, so you gain nothing from a "source is
12 better" perspective.
13
14 Niecza is a Perl 6 compiler project studying questions about the
15 efficient implementability of Perl 6 features. It currently targets
16 the Common Language Runtime; both Mono and Microsoft.NET are known to
17 work.
18
19 List of changes
20
21 * The most significant change is that Niecza is now written in Perl 6
22 and compiled using itself. Perl 5 is no longer required to use
23 Niecza (although some supporting tools need it). This makes Niecza
24 a good amount faster on large files, or on small ones if the
25 precompiler is used; the REPL is especially benefitted. Niecza runs
26 as a single CLR process.
27
28 * Another very welcome change is that Paweł Murias (pmurias) is now a
29 regular committer.
30
31 * The REPL now keeps the same interpreting context between lines, so
32 lines (after the first) are processed instantly and with our-scoped
33 variables preserved.
34
35 * A bug which prevented Niecza from working on Microsoft.NET has been
36 found and fixed (Matthew Wilson)
37
38 * A spectest harness has been added, and Niecza can run more than 200
39 spectests (Moritz Lenz)
40
41 * New compiler features:
42 - Metaoperators in all cases
43 - .foo; implicit $_ syntax
44 - if COND -> $r { ... } (Paweł Murias)
45 - Method calls can have string names ."$foo"
46 - $/ and $! are supported in parameter lists
47 - $?FOO works again
48
49 * New setting and runtime facilities:
50 - map, grep, and [] are mostly eager and C# coded
51 - Ranges, including .. and ^ operators
52 - Numeric bit operators (+^, +&, +|, +<, +>)
53 - Boolean bit operators
54 - chr & ord
55 - Portable path manipulation
56 - grep and map now return lvalues
57 - done_testing is now done and .dump is now .perl
58 - JSYNC.pm6 now provides JSON functionality
59 - Action methods and &make are supported
60 - Test.pm6 improvements (Paweł Murias)
61 - Initial attribute values can be passed to Any.new
62
63 * Redesigned compiler API from Paweł Murias.
64
65 * Improved documentation of nam IR.
66
67 * Numerous bug fixes
68
69 Getting involved
70
71 Contact sorear in irc.freenode.net #perl6 or via the sender address of
72 this mailing. Also see docs/lhf.txt for a list of things that need to
73 be done in no particular order.
74
75 Future directions
76
77 For next month, I plan to focus on the type system. That will mean
78 copying Jonathan Worthington's "6model" design to whatever extent is
79 reasonable; subtypes, role composition, type constraints on variables,
80 type constraints on parameters, enums, multiple dispatch, and
81 representation polymorphism will be implemented.
82
83 After this, it will be possible to greatly expand the setting, and
84 with it, spectest coverage. &eval and BEGIN are on the table and will
85 be worked on as inspiration permits.
79d5470 @sorear Add URLs to v2 announce
authored
86
87 [1] https://github.com/downloads/sorear/niecza/niecza-2.zip
88 [2] https://github.com/sorear/niecza
Something went wrong with that request. Please try again.