Reimplementation of Pijul in C, for education, fun and absolutely no profit

change: rework to make more testable

This is a big overhaul: Change files are new mmap()ed when they are opened, allowing to change most operations to work on byte buffers (instead of file descriptors).

This in turn makes the change deserialization much more testable as we can just feed it arrays of bytes w/o requiring anything on disk.

An error type is introduced and parsing functions should return variants of this error type instead of having the whole program die when a parsing error occurs.

A separate change that unfortunately got worked into this one is the introduction of change_readstr() which can take care of fetching a string length, xmalloc()ing the right amount of space, and copying the string data into it.

Created by  laumann  on November 27, 2023
SMB3M6ESOIR2LMFII2VFQJSPFIUYXHD7CXYARIGOKPB2QF2ORFLAC
Dependencies
In channels
main
In discussions
Change contents