Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 7df6137c06
Fetching contributors…

Cannot retrieve contributors at this time

63 lines (42 sloc) 2.181 kB

Synopsis

This is an overview of the Niecza ecosystem, which is currently contained entirely inside the repository.

Compiler

Found mostly in src/, this parses Perl 6 and converts it to a representation that can be consumed by the backend. See compiler.pod for more details.

Runtime system

This comprises 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 System.Reflection.Emit.

Core library

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.

Other libraries

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 -p and -n.

Build system

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.

Documentation

Start in this file, and follow links as needed. Also see the archived release announcements.

Miscellany

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 suite

test.pl is the main test suite; all tests in it are expected to pass. test2.pl and 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.

Jump to Line
Something went wrong with that request. Please try again.