Cthulhu  0.2.10
Cthulhu compiler collection
Modules
Here is a list of all modules:
[detail level 1234]
 Common libraryCollection of common types and functions shared by all other components
 Arena memory allocationGlobal and arena memory management the arena_* functions provide strong garuntees for memory allocation and deallocation with pre and post checks to catch possible incorrect usage. for weaker garuntees, the Failable arena allocation functions can be used
 Failable arena allocationFailable arena allocation these allocation functions are used when the allocation is not critical and can fail. they also perform less validation on the input parameters than the Arena memory allocation functions
 Stacktrace libraryBacktrace library
 Base libraryBasic features required by all other modules
 Simple bitsetSimple bitset
 Verbose loggingVerbose logging
 Assertions and panic handling
 ConfigurationConfiguration system
 ConstructionConfiguration construction API
 ReflectionReflection API for configuration
 ReadingReading API for configuration
 WritingWriting API for configuration
 Header only coreAbstractions over compiler specific features and build configuration
 Static analysis decoratorsDecorators for static analysis tools
 Compiler specific macrosCompiler detection macros and compiler specific functionality
 Common macrosCommon macros used throughout the project
 ANSI Colour macrosANSI escape string colour macros
 Exit codesExit codes that match with GNU standard codes
 Source location informationSource location information for panics and other debugging information
 Version macrosVersion macros and types
 Windows wrapperWindows wrapper header, use this instead of including windows directly
 Endianess and byte swapping
 Filesystem abstractionVirtual and physical filesystem interface
 Flex/Bison interop utilsFlex/Bison interop utils for easier integration
 Helpers for flex and bison driver frontends
 IO stream interfaceUnified interface over streaming io
 io implementation detailsInternal io implementation details
 Compiler message notificationCompiler message logging and error registration
 Platform abstraction layerIntermediary layer for OS specific calls
 Dynamic Loading
 Filesystem handling
 Threading
 Source location trackingAST source position tracking
 Standard libraryCommonly used collections and functions
 Unordered mapHash map
 Unordered setHash set
 String manipulation and processingString manipulation and processing
 Typed vectorGeneric vector of typed values
 Type informationType information
 Generic vectorGeneric vector
 Compiler runtimeRuntime functions for drivers, interfaces, and plugins
 Compiler runtime mediatorCore of the compiler, manages languages, plugins, and targets
 Tree form validationValidation for tree form IR
 Compiler eventsGeneric errors shared between frontends
 Global memory allocationDefault global memory allocator this is an intermediate layer to help with transitioning to pure arena allocation its recommended to avoid this for new code and to remove it from existing code
 SSA form IRSSA form IR
 Tree intermediate formTree intermediate form generated by language drivers
 Driver utility functionsUtility functions for the runtime
 Target output helper libraryTarget output helper library
 Module loaderModule enumeration and shared library loading
 Support libraries for languages, plugins, and frontendsSupport libraries
 Command line argument parsingCommand line argument parsing TODO: reduce the amount of allocations by allowing config to accept string views TODO: nicely support error propagation out of the parser
 Driver helperDriver helper
 User facing text formatting libraryFormat common types into a human readable text format
 Backtrace pretty printingPretty printing of backtraces
 Terminal coloursTerminal colours for formatting
 Format compiler messages for printingFormat compiler messages for printing
 Format version informationFormat version information
 JSON parsingSimple JSON parsing
 setupCommand line parsing and setup