Releases ======== 0.7.0 (2022-12-23) ------------------ 169 files changed, 6332 insertions(+), 3858 deletions(-) ### Breaking changes * `./configure` - feature `--(enable|disable)-debug` has been removed. * `` - definition `KERNAUX_DEBUG` has been removed. * `` - it has been removed. * `` - it has been completely rewritten. ### New features * `./configure` - feature `--(enable|disable)-fixtures` has been added. * `./configure` - feature `--(enable|disable)-pkg-config[=PATH` has been added. It allows you to specify where to install **pkg-config** files. * `./configure` - package `--with[out]-multiboot2` has been added. * `` - definition `KERNAUX_BITFIELDS` has been added. * `` - new header. * `` - macro `KERNAUX_STATIC_TEST` has been added. * `` - macros `KERNAUX_CAST_(VAR|CONST)` have been added. * `` - new header. * `` - new header. Now it contains the variable `kernaux_assert_cb`. ### Other changes * `./configure` - a shared library is built by default. * `` - the headers are the same regardless of the selection of features and packages (except ``). * `examples/Makefile` - the test suite can be built now without **pthreads**. * `tests/Makefile` - the ability to run tests from with any working directory has been added. * `tests/Makefile` - the test suite has been fixed to run on FreeBSD. 0.6.1 (2022-12-05) ------------------ 12 files changed, 111 insertions(+), 110 deletions(-) ### Other changes * `./configure` - fix a bug with building for a freestanding environment * `Makefile` - fix cppcheck in out-of-root builds * `Makefile` - fix Python tests if out-of-root builds 0.6.0 (2022-12-04) ------------------ 121 files changed, 1444 insertions(+), 1806 deletions(-) ### Breaking changes * `./configure` - features `--enable-tests*` have been renamed to `--enable-checks*`. * `` - macro `KERNAUX_PACKING_ATTR` has been renamed to `KERNAUX_PACKED`. ### New features * `./configure` - feature `--enable-checks-cppcheck` has been added. * `Makefile` - task `check-cppcheck` has been added. * `` - macros `KERNAUX_ALIGNED`, `KERNAUX_ASM`, `KERNAUX_NORETURN`, `KERNAUX_PRINTF`, `KERNAUX_RETURNS_TWICE`, `KERNAUX_SECTION`, `KERNAUX_UNUSED`, `KERNAUX_USED` have been added. * `` - new header. It's printf format parser. ### Other changes * `` - fix a bug that was making the allocator unusable. * `` - fix displaying floating-point numbers with big precision. 0.5.0 (2022-11-26) ------------------ 138 files changed, 2962 insertions(+), 1741 deletions(-) ### Breaking changes * `./configure` - package `--with[out]-io` has been removed. * `` - the header has been removed. * `` - the API of the functions functions `[v]fprintf` has been changed. ### New features * `./configure` - package `--with[out]-asm` has been added. * `./configure` - packages `--with[out]-arch-(all|i386|riscv64|x86-64)` have been added. * `./configure` - package `--with[out]-drivers` has been added. * `./configure` - package `--with[out]-free-list` has been added. * `` - new header. It's a free list memory allocator. * `` - new header. It's a set of macros. * `` - macro `KERNAUX_PRIVATE_FIELD` has been added. * `` - macro `KERNAUX_PROTECTED_FIELD` has been added. * `` - macros `KERNAUX_BITS[8|16|32|64]` have been added. * `` - macros `KERNAUX_CONTAINER_OF` have been added. * `` - new header. It's a generic memory allocator interface. * `` - new header. It's a generic mutex interface. * Definition `KERNAUX_ACCESS_PRIVATE` has been added. * Definition `KERNAUX_ACCESS_PROTECTED` has been added. 0.4.0 (2022-06-16) ------------------ 225 files changed, 8625 insertions(+), 3744 deletions(-) ### Breaking changes * `./configure` - feature `--(enable|disable)-bloat` has been removed. * `./configure` - feature `--(enable|disable)-pic` has been removed. * `` - API has been completely changed. * `` - header has been removed. * `` - API has been completely changed. * `` - Easter egg has been removed. * `` - functions `[v]printf` have been renamed to `[v]fprintf`, API has been changed. ### New features * `./configure` - new feature `--(enable|disable)-debug`. * `./configure` - new package `--with[out]-io`. * `./configure` - new package `--with[out]-memmap`. * `` - new header. It's a memory map. 0.3.0 (2022-05-28) ------------------ 134 files changed, 6149 insertions(+), 1770 deletions(-) ### Breaking changes * `` - a semicolon is required after macros. * `` - the constant `KERNAUX_ITOA_BUFFER_SIZE` is renamed to `KERNAUX_ITOA10_BUFFER_SIZE`. ### New features * `./configure` - testing may be enabled with `--enable-tests`, `--enable-tests-all`, `--enable-tests-python`. * `./configure` - the heavy binary data may be disabled with `--disable-bloat`. * `./configure` - position-independent code is generated by default, disable with `--disable-pic`. * `./configure` - compiler warnings turn into errors by default, disable with `--disable-werror`. * `` - added functions `atoi`, `isdigit`, `isspace`. * `` - added functions `kernaux_[u|i]toa`, `kernaux_[u|i]toa16` and related constants. ### Other changes * Assertions are used more broadly. * `` - the header is now generated from template depending on configuration options, so you may safely include it when some packages are missing, it won't cause compilation error. * `` - a potential buffer overflow is fixed. 0.2.0 (2022-01-22) ------------------ 51 files changed, 1647 insertions(+), 501 deletions(-) ### Breaking changes * `./configure` - removed options to disable panic calls and returns in ``. * `` - removed preprocessor directives that can disable panic calls and returns. ### New features * `` is stable now. It's a simple command line parser. ### Other changes * Now `./configure` options also follow semantic versioning. * Bug fixes in ``. 0.1.0 (2022-01-20) ------------------ Initial release.