Cthulhu  0.2.10
Cthulhu compiler collection
Usage

The cthulhu framework has 3 tiers of integration.

Tier 3

Only uses the Common library module, in this form cthulhu can be used via a meson subproject or pkgconfig via cthulhu-common

Tier 2

Tier 2 has access to Common library, Compiler runtime, and Support libraries for languages, plugins, and frontends. In this form cthulhu can be consumed as either a meson subproject or via pkgconfig as cthulhu-runtime + cthulhu-support. These dependencies require cthulhu-common.

Tier 1

Dynamic loading

If a frontend supports dynamic loading of modules you can provide an out of tree module to it and it can load it. This requires cthulhu to be built and consumed as a shared library, static libraries cause duplication of global state, which causes issues with allocators.

For a module to be consumed by the loader it must provide at least one of the following symbols:

Refer to Driver helper, and Compiler runtime mediator. for more information about the exact details of these types.

Static loading

Static loading requires writing an in-tree module and building + registering it through meson.

Installation

Installing cthulhu onto your local system can be performed with meson

meson setup build
sudo meson install -C build

Note that by default these are no relocatable. More about this at the meson docs.