Portable reliability
With this release cashpack is more portable than ever. It complies to the standard C99 language and targets POSIX.1-2008 systems. The build system strives for the same level of portability as the library itself, targeting different make
and sh
implementations. Thanks to Travis CI, OSX support was added after a painful game of trial&error.
To make sure not to forget a component of portability, a release process is now documented.
Overall quality improved: besides strict compliance to C99 (-pedantic
) with a slight API change all warnings are now enabled. The goal was to match FreeBSD's WARNS level 6 with additional warnings but some of them needed to be disabled. Sparse was added to the toolbox to bring even more warning checks, none of them triggered.
According to lcov, the code coverage would be 100% if it weren't for 5 uncovered branches. As a matter of fact those branches lead to WRONG
statements that should never be reached. Drawing conclusions is an exercise left to the reader (hint).
Besides portability and tooling, two new functions landed in cashpack:
hpack_decode_fields
: a decoding process without a callbackhpack_dump
: a dump of the data structure (previously in the test suite)
It is now possible to inspect the dynamic table at any time, even from within a callback. The cashdumb
example was partially rewritten and simplified thanks to that, and the hpack_decode_fields
function.
Can cashpack grow more features before reaching 1.0? Yes, a wee bit more.