Skip to content
This repository
branch: non-bootstrap
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 83 lines (60 sloc) 3.207 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
    Announce: Niecza Perl 6 v4

Niecza tag announcements occur on the last Monday of each month,
irrespective of the rate of development.

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. On Windows, Cygwin is required for source builds only; see the
README for details.

Martin Berends (mberends) is the new contributor for this month.

    List of changes

eval is now supported, along with eval_lives_ok and company. Note the
following limitations and bugs:
  - No lexical scope inheritance (my $x; eval '$x')
  - Leaks memory (no garbage collection for compiled code)
  - eval always returns Any, so is only useful for side effects
  - eval requires the compiler at runtime, so it cannot be used in
    programs which will be precompiled to .exe

Threads.pm6 has been debitrotten and extended with a full monitor API
and an ObjectPipe class.

Class declarations of the form A::B are now allowed, and can be used in
files with names like A/B.pm6.

Type constraints are now supported for variable and parameter declarators.

The $foo.=bar and $foo .= bar syntaxes are now supported.

The $foo.$( ... ) syntax is now supported.

More spectest work, mostly by moritz++.

Categoricals like term:<foo> are now available, additionally, term:<now>
has been added by mberends++.

$match.[0] is now treated as a synonym for $match if $match has no
positional captures. This means that { say 'foo' ~~ /o*/ } will now do
what you expect.

Internal and interface changes:
  - SAFE is gone; an "is unsafe" trait is now used for the sandbox.
  - Refactored generation of vtable overrides.
  - Much groundwork for multiple dispatch has been set.
  - Niecza's STD.pm6 has been brought even closer to the standard one.
  - More makefile targets (spectest, aot, clean, realclean, help) (mberends)
  - Error messages consistantly use "Cannot" (moritz)

Bug fixes:
  - $str ~~ m// no longer is always true.
  - Parcels can be used as Lists in more places.
  - Mono 2.6.x compatibility has been restored.
  - Rounding of dates on Win32 no longer disables recompilation checking.

    Getting involved

Contact sorear in irc.freenode.net #perl6 or via the sender address of
this mailing. Also check out the TODO file; whether you want to work
on stuff on it, or have cool ideas to add to it, both are good.

    Future directions

The current general focus is on applications. I hope to have yapsi
running on Niecza soon. This will require multiple dispatch and some
small object model improvements. Improved designs from 6model will
be gradually incorporated.

A JVM backend is in the design stages.

[1] https://github.com/downloads/sorear/niecza/niecza-4.zip
[2] https://github.com/sorear/niecza
Something went wrong with that request. Please try again.