Nucleus is a cross-platform C library for Windows 10, Cygwin, Linux, and macOS protecting from compiler and operating system idiosyncracies. It provides aggregate, annotation, atomic operation, concurrency, command-line, file system, memory management, and Unicode functionality, and more.
Download or checkout the source code from https://github.com/primordialmachine/nucleus. See below for build instructions for some of the individual environments.
*The following build instructions and build options pertain to all products from the Nucleus series.
All products accept the build options described here.
The description of additional build options specific to a product are described in its documentation.
The name of this product in the build system is
The above build instructions perform in-source builds. However, it is recommended to perform out-of-source builds instead. For more information on out-of-source builds can be found here.
The documentation of Nucleus is in the process of being converted to Markdown for being directly available on Github.
Nucleus Annotations Module
The Nucleus Annotations module provides annotations for functions, parameters, and expressions.
The following annotations are currently available.
Nucleus Memory Module
The Nucleus Memory Module provides functionality to allocate and deallocate memory blocks, as well as valuation and manipulation of memory blocks and their contents.
For the purpose of this documentation, any consecutive - possibly empty - sequence of Bytes starting at some address is called a memory block. As usual with C, a pointer p to the first Byte of a memory block increment by 1 will point to the second Byte, a pointer p to the second Byte increment by 1 will point to the third Byte an so on. The number of Byte variables of a memory block is the size of a memory region. The Nucleus memory module provides functionality to allocate and deallocate memory blocks, as well as valutation and manipulation of memory blocks and their contents.
The tasks of allocation and deallocation of memory blocks, valuation and manipulation of memory blocks and their contents are in C frequently performed over memory blocks of which their sizes are specified in terms of array semantics: The memory block is considered as an array and it size is specified as its number of elements and the size, in Bytes, of an element. Consequently, each function taking a specification of a size of a memory block as a single value, is accompanied by function taking the specification of the size of the memory block as two values. In this API, you You can easily find the related functions:
- The functions taking the size, in Bytes, do not include the word
Arrayin their function names,
- the functions taking the number of elements and the element size, in Bytes, include the word
Arraysomewhere in their function names.
The Array-functions do not only exist for convenience, but also for safety: These function fail if the multiplication of the number of elements and the element size would overflow.
Nucleus Floating Point Module
The Nucleus Floating Point Module provides functionality to evaluate and generate single, double, and quadruple precision floating point values.
- Nucleus_Single, Nucleus_Double, Nucleus_Quadruple
- Nucleus_Single_Least, Nucleus_Double_Least, Nucleus_Quadruple_Least
- Nucleus_Single_Greatest, Nucleus_Double_Greatest, Nucleus_Quadruple_Greatest
- Nucleus_Single_NegativeInfinity, Nucleus_Double_NegativeInfinity, Nucleus_Quadruple_NegativeInfinity
- Nucleus_Single_PositiveInfinity, Nucleus_Double_PositiveInfinity, Nucleus_Quadruple_PositiveInfinity
- Nucleus_Single_hash, Nucleus_Double_hash, Nucleus_Quadruple_hash
- Nucleus_Single_isNaN, Nucleus_Double_isNaN, Nucleus_Quadruple_isNaN
- Nucleus_Single_isSubnormal, Nucleus_Double_isSubnormal, Nucleus_Quadruple_isSubnormal
Nucleus Hash Module
The Nucleus Hash provides functionality to compute hash values from boolean values, numeric values, pointer values, and Byte array values as well hash value combinators.
Nucleus Atomic Module
The Nucleus Atomic Module provides atomic operations.
Nucleus File System Module
The Nucleus File System Module provides functionality related to the filesystem.
Nucleus Collections Module DRAFT
The Nucleus Collections Module provides collections e.g. arrays, deques. Any collection provided supports Its documentation can be found here.
Continuous Integrations Status Maxtrix