This is an overview of the Niecza ecosystem, which is currently contained entirely inside the repository.
Found mostly in
this parses Perl 6 and converts it to a representation that can be consumed by the backend.
compiler.pod for more details.
lib/*.cs; it is the body of C# primitives necessary for compiler output to function,
or that underlie the lowest levels of library functionality.
It also contains the back end of the compiler which integrates Perl 6 output with
lib/CORE.setting is used automatically in Perl 6 programs and provides definitions of all Perl 6 functions.
It uses Niecza extensions fairly heavily,
especially inline NAM code and references into the runtime.
lib/*.pm6 currently provides multithreading and a TAP stub.
I hope to see more here eventually.
Or maybe we'll integrate with "ecosystem".
lib/COR*.setting provides the settings used by
Makefile is in charge of the build process; it downloads a bootstrap compiler,
builds the new compiler,
and builds the libraries.
It can also be used to make a new bootstrap image and run tests.
There has been some discussion of rewriting it in C# to support non-Cygwin Windows.
Start in this file, and follow links as needed. Also see the archived release announcements.
perf/ contains various scripts used to microbenchmark changes in Niecza.
tools/ contains a handful of tools that are useful while developing Niecza.
examples/ contains demos of Perl 6 code that works (especially well) on Niecza,
often using Niecza extensions like CLR interoperability.
test.pl is the main test suite; all tests in it are expected to pass.
test3.pl are much smaller and allowed to contain failing tests; I use them as a TDD staging area.
Now that Niecza can run roast tests, most new tests should go into roast, not here. Only add new tests here if they are essentially linked to Niecza extensions.