Releases: zyga/libzt
New paint job
0.3 - the one-more-thing release
This release brings many small improvements that result from using libzt on an
actual codebase and huge unexpected improvements to the build system and test
coverage. Internally the library is now built using https://github.com/zyga/zmk
which dramatically simplifies maintenance the sister library - libzc.
Changes in 0.3
-
Pointers captured in zt_value by zt_pack_pointer() are now constant.
This allows testing pointers to constants with ZT_NULL and ZT_NOT_NULL.
This does not impact the ABI. -
Added ZT_CMP_PTR for comparing pointers for equality and inequality.
Other relations are explicitly left out, at least for now. -
ZT_CMP_INT and ZT_CMP_UINT now support maximum integral types of the
architecture. This allows ZT_CMP_UINT to safely work with size_t values.This is achieved in a backwards compatible way. Existing test programs
compiled and linked with libzt 0.1 or 0.2 retain their current semantic.The type zt_value has grown two new kinds, ZT_INTMAX and ZT_UINTMAX,
along with new union members. The static inline pack functions
zt_pack_integer and zt_pack_unsigned now take intmax_t and uintmax_t
arguments respectively. Since they are always inlined this is not an
ABI break. Test programs built with older definitions of the two pack
functions use distinct kind (ZT_INTEGER instead of ZT_INTMAX and
ZT_UNSIGNED instead of ZT_UINTMAX) which is now detected and handled
by zt_cmp_int and zt_cmp_uint. Internally the values are promoted
and comparison is always performed on the extended types. -
The function zt_main() now displays both the test case name and the outcome
of each test when invoked with "-v" command-line argument. -
Libzt can now build for DOS as either 16bit or extended mode 32bit.
Note that libzt-test.exe requires the DOS extender as it is too large to fit
into 64K code segment. -
The configuration system is more robust and can now detect the use of Gcc,
Clang and the OpenWatcom compilers. Using OpenWatcom from the open-watcom
snap allows cross-compiling libzt for DOS and other older targets. -
The build system is now decoupled from libzt and can be used for other
projects. Currently a copy resides in-tree but at some later date it may
become a new development-only dependency. Distribution tarballs will not
require any new dependencies. -
The tree now contains comprehensive integration tests that build and
exercise the library on several different Linux distributions. One of the
tests cross builds libzt for DOS and tests it with DosBox and DOS/32
extender.
libzt 0.2 - the-extra-polish-and-tweaks release
Some manual pages got updated. Some code got hardened. There's a new helper typedef.
This is a much more solid release for distribution packaging. All code remains compatible.