Skip to content
This repository
tree: 589fce1fde
Fetching contributors…


Cannot retrieve contributors at this time

file 50 lines (32 sloc) 1.557 kb


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


Found mostly in src/, this converts Perl 6 source to C#. See compiler.pod for more details.

Runtime system

This comprises lib/Kernel.cs and lib/Cursor.cs; it is the body of C# primitives necessary for compiler output to function, or that underlie the lowest levels of library functionality.

Core library

lib/SAFE.setting and lib/CORE.setting are used automatically in Perl 6 programs and provide definitions of all Perl 6 functions. They use 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.

Build system

Niecza.proj is in charge of getting the compiler and libraries into a usable state and running the tests. It is supported by PerlTask.cs and, a Microsoft.Build plugin for running Perl 5 code; not having to load Niecza more than once saves quite a few seconds.


Watch this space.


perf/ contains various scripts and tools used to microbenchmark changes in Niecza. t/ contains a handful of unit tests (unmaintained).

Test suite is the main test suite; all tests in it are expected to pass. and are much smaller and allowed to contain failing tests; I use them as a TDD staging area.

Something went wrong with that request. Please try again.