Some fundamental definitions.


§1. Build identity. This notation tangles out to the current build number as specified in the contents section of this web.

    define INTOOL_NAME "inblorb"

§2. Setting up the memory manager. We need to itemise the structures we'll want to allocate:

    enum auxiliary_file_MT
    enum chunk_metadata_MT
    enum heading_MT
    enum placeholder_MT
    enum rdes_record_MT
    enum request_MT
    enum resource_number_MT
    enum segment_MT
    enum skein_node_MT
    enum table_MT
    enum template_MT
    enum template_path_MT

§3. And then expand:

    ALLOCATE_INDIVIDUALLY(auxiliary_file)
    ALLOCATE_INDIVIDUALLY(skein_node)
    ALLOCATE_INDIVIDUALLY(chunk_metadata)
    ALLOCATE_INDIVIDUALLY(placeholder)
    ALLOCATE_INDIVIDUALLY(heading)
    ALLOCATE_INDIVIDUALLY(table)
    ALLOCATE_INDIVIDUALLY(rdes_record)
    ALLOCATE_INDIVIDUALLY(resource_number)
    ALLOCATE_INDIVIDUALLY(segment)
    ALLOCATE_INDIVIDUALLY(request)
    ALLOCATE_INDIVIDUALLY(template)
    ALLOCATE_INDIVIDUALLY(template_path)

§4. Simple allocations. Not all of our memory will be claimed in the form of structures: now and then we need to use the equivalent of traditional malloc and calloc routines.

    enum RDES_MREASON
    void Basics::register_mreasons(void) {
        Memory::reason_name(RDES_MREASON, "resource descriptions");
    }

The function Basics::register_mreasons is used in 1/mn (§3).