Announce: Niecza Perl 6 v2

This is the second announcement of a distinguished Niecza version, and
the first to be regularly scheduled.  Niecza tag announcements occur
on the last Monday of each month.

You can obtain a build of Niecza from [1].  This build contains a
working compiler as a set of .exe and .dll files suitable for use with
Mono or Microsoft .NET.  If you wish to follow latest developments,
you can obtain the source from [2]; however, you will still need a
binary for bootstrapping, so you gain nothing from a "source is
better" perspective.

Niecza is a Perl 6 compiler project studying questions about the
efficient implementability of Perl 6 features.  It currently targets
the Common Language Runtime; both Mono and Microsoft.NET are known to
work.

    List of changes

* The most significant change is that Niecza is now written in Perl 6
  and compiled using itself.  Perl 5 is no longer required to use
  Niecza (although some supporting tools need it).  This makes Niecza
  a good amount faster on large files, or on small ones if the
  precompiler is used; the REPL is especially benefitted.  Niecza runs
  as a single CLR process.

* Another very welcome change is that Paweł Murias (pmurias) is now a
  regular committer.

* The REPL now keeps the same interpreting context between lines, so
  lines (after the first) are processed instantly and with our-scoped
  variables preserved.

* A bug which prevented Niecza from working on Microsoft.NET has been
  found and fixed (Matthew Wilson)

* A spectest harness has been added, and Niecza can run more than 200
  spectests (Moritz Lenz)

* New compiler features:
  - Metaoperators in all cases
  - .foo; implicit $_ syntax
  - if COND -> $r { ... } (Paweł Murias)
  - Method calls can have string names ."$foo"
  - $/ and $! are supported in parameter lists
  - $?FOO works again

* New setting and runtime facilities:
  - map, grep, and [] are mostly eager and C# coded
  - Ranges, including .. and ^ operators
  - Numeric bit operators (+^, +&, +|, +<, +>)
  - Boolean bit operators
  - chr & ord
  - Portable path manipulation
  - grep and map now return lvalues
  - done_testing is now done and .dump is now .perl
  - JSYNC.pm6 now provides JSON functionality
  - Action methods and &make are supported
  - Test.pm6 improvements (Paweł Murias)
  - Initial attribute values can be passed to Any.new

* Redesigned compiler API from Paweł Murias.

* Improved documentation of nam IR.

* Numerous bug fixes

    Getting involved

Contact sorear in irc.freenode.net #perl6 or via the sender address of
this mailing.  Also see docs/lhf.txt for a list of things that need to
be done in no particular order.

    Future directions

For next month, I plan to focus on the type system.  That will mean
copying Jonathan Worthington's "6model" design to whatever extent is
reasonable; subtypes, role composition, type constraints on variables,
type constraints on parameters, enums, multiple dispatch, and
representation polymorphism will be implemented.

After this, it will be possible to greatly expand the setting, and
with it, spectest coverage.  &eval and BEGIN are on the table and will
be worked on as inspiration permits.

[1] https://github.com/downloads/sorear/niecza/niecza-2.zip
[2] https://github.com/sorear/niecza

Attachment: signature.asc
Description: Digital signature

Reply via email to