Anamnesis & A2

About

Anamnesis 2 repo readout

Anamnesis was originally written to manage memory within a piece of C coursework — it packages pointers and allocation sizes into a struct that can be passed about in order to free or re-use memory throughout a program, so that leaks can be tracked and eradicated. Though not very good as a general purpose memory manager, it's very useful to ensure that modular programs can retain a certain level of separation between their components at the memory level

A2 is a second iteration of Anamnesis with a slightly different goal: instead of keeping many separate repositories of memory this system is able to sub-allocate ram from a large blob. Clearly this introduces some issues surrounding how static that blob is, and anamnesis can optionally compact and defragment that blob (which means static pointers need reallocation, something I provide macros to do).

A2 is capable of allocation within a fixed memory area, and is really a type of memory manager — indeed, it has been used by John Vidler as a component of his JaOS kernel for this purpose.

Both libraries are written in C, and have been used a few times in various projects so aren't going to explode immediately. I think A2 at least is C99.

Download

Use

Both libraries have a README and example code, which I'm afraid you'll have to struggle by with for now :-)