Announce: Niecza Perl 6 v1 To mark one month since the first announcement of Niecza, to be known retroactively as v0, this is another announcement, to be known as v1. Further announcements will occur at intervals on the last Monday of each month.
You have my assurance that the 'v1' tag, available at [1], passes all of the current tests and has a bunch of cool features. What you will not necessarily have is an easy time installing it; Niecza depends on several non-pure-Perl modules from CPAN, which you'll need to set up in order to be able to use Niecza. I recommend trying cpanminus first. Niecza is a Perl 6 compiler project studying questions about the efficient implementability of Perl 6 features. It currently targets the Common Language Runtime in the form of Mono. List of changes * The code generation backend has been rewritten to generate CLR bytecode directly, instead of going through the C# compiler. This is quite a bit faster, and also generates slightly better code (due to structural restrictions on C# code that spaghetti bytecode lacks). Also, it means that Niecza no longer depends on a C# compiler after installation. * Call graph generation. Set NIECZA_TRACE_CALLS=1 in the environment, then pass the output into perf/call-log-analyze.pl to see what your most used functions are. * The included JSYNC interface can now save subclasses of Hash. * use v6; is now recognized and ignored. * --gen-app is no longer available; it was deeply tied to the C# use. * The binder has been redesigned and made data-driven, shrinking DLLs and making signature introspection possible. * Regex matches now set $/. * New methods: Cool: split, index, rindex, lines, split, comb improved * New operators: &&=, ||=, //=, andthen= * New top-level functions: open, print. say returns True on success per spec. * pmurias added &skip to Test and fixed escaping of debug clauses. * New keywords supported: INIT, require, submethod * Exceptions now propagate out of inner loop contexts correctly (e.g. if a Str overload dies when an object is stringified) * Array and hash slices are now supported. * Relative array indexing (@foo[*-1]) is now supported. * In stack traces, method names now include the class. * 'augment' now takes effect at INIT time, not BEGIN. This allows augments to be used in precompiled modules. * Bootstrap code is now properly distributed between modules, rather than having all of it bloat MAIN.exe. * @*ARGS works properly with compile-and-run mode. * Attribute default values are implemented. * Minor optimizations have been done on: storage of boxed values, autovivification, postcircumfix operators, contextual conversions, zero width assertions, list iteration. 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 To simplify deployment and make &eval easier to implement, I'd like to take Perl 5 out of the loop. Therefore I am engineering a way to allow the compiler to be moved to Perl 6; this will probably be finished by v2 or v3. After that, expect lots of spectest work. [1] https://github.com/sorear/niecza/zipball/v1
signature.asc
Description: Digital signature