169 files changed, 6332 insertions(+), 3858 deletions(-)
./configure- feature--(enable|disable)-debughas been removed.<kernaux/*>- definitionKERNAUX_DEBUGhas been removed.<kernaux/assert.h>- it has been removed.<kernaux/memmap.h>- it has been completely rewritten.
./configure- feature--(enable|disable)-fixtureshas been added../configure- feature--(enable|disable)-pkg-config[=PATHhas been added. It allows you to specify where to install pkg-config files../configure- package--with[out]-multiboot2has been added.<kernaux/*>- definitionKERNAUX_BITFIELDShas been added.<kernaux/generic/display.h>- new header.<kernaux/macro.h>- macroKERNAUX_STATIC_TESThas been added.<kernaux/macro.h>- macrosKERNAUX_CAST_(VAR|CONST)have been added.<kernaux/multiboot2.h>- new header.<kernaux/runtime.h>- new header. Now it contains the variablekernaux_assert_cb.
./configure- a shared library is built by default.<kernaux/*>- the headers are the same regardless of the selection of features and packages (except<kernaux/version.h>).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.
12 files changed, 111 insertions(+), 110 deletions(-)
./configure- fix a bug with building for a freestanding environmentMakefile- fix cppcheck in out-of-root buildsMakefile- fix Python tests if out-of-root builds
121 files changed, 1444 insertions(+), 1806 deletions(-)
./configure- features--enable-tests*have been renamed to--enable-checks*.<kernaux/macro.h>- macroKERNAUX_PACKING_ATTRhas been renamed toKERNAUX_PACKED.
./configure- feature--enable-checks-cppcheckhas been added.Makefile- taskcheck-cppcheckhas been added.<kernaux/macro.h>- macrosKERNAUX_ALIGNED,KERNAUX_ASM,KERNAUX_NORETURN,KERNAUX_PRINTF,KERNAUX_RETURNS_TWICE,KERNAUX_SECTION,KERNAUX_UNUSED,KERNAUX_USEDhave been added.<kernaux/printf_fmt.h>- new header. It's printf format parser.
<kernaux/free_list.h>- fix a bug that was making the allocator unusable.<kernaux/printf.h>- fix displaying floating-point numbers with big precision.
138 files changed, 2962 insertions(+), 1741 deletions(-)
./configure- package--with[out]-iohas been removed.<kernaux/io.h>- the header has been removed.<kernaux/printf.h>- the API of the functions functions[v]fprintfhas been changed.
./configure- package--with[out]-asmhas been added../configure- packages--with[out]-arch-(all|i386|riscv64|x86-64)have been added../configure- package--with[out]-drivershas been added../configure- package--with[out]-free-listhas been added.<kernaux/free_list.h>- new header. It's a free list memory allocator.<kernaux/macro.h>- new header. It's a set of macros.<kernaux/macro.h>- macroKERNAUX_PRIVATE_FIELDhas been added.<kernaux/macro.h>- macroKERNAUX_PROTECTED_FIELDhas been added.<kernaux/macro.h>- macrosKERNAUX_BITS[8|16|32|64]have been added.<kernaux/macro.h>- macrosKERNAUX_CONTAINER_OFhave been added.<kernaux/generic/malloc.h>- new header. It's a generic memory allocator interface.<kernaux/generic/mutex.h>- new header. It's a generic mutex interface.- Definition
KERNAUX_ACCESS_PRIVATEhas been added. - Definition
KERNAUX_ACCESS_PROTECTEDhas been added.
225 files changed, 8625 insertions(+), 3744 deletions(-)
./configure- feature--(enable|disable)-bloathas been removed../configure- feature--(enable|disable)-pichas been removed.<kernaux/assert.h>- API has been completely changed.<kernaux/libc.h>- header has been removed.<kernaux/ntoa.h>- API has been completely changed.<kernaux/printf.h>- Easter egg has been removed.<kernaux/printf.h>- functions[v]printfhave been renamed to[v]fprintf, API has been changed.
./configure- new feature--(enable|disable)-debug../configure- new package--with[out]-io../configure- new package--with[out]-memmap.<kernaux/memmap.h>- new header. It's a memory map.
134 files changed, 6149 insertions(+), 1770 deletions(-)
<kernaux/assert.h>- a semicolon is required after macros.<kernaux/assert.h>- the constantKERNAUX_ITOA_BUFFER_SIZEis renamed toKERNAUX_ITOA10_BUFFER_SIZE.
./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.<kernaux/libc.h>- added functionsatoi,isdigit,isspace.<kernaux/ntoa.h>- added functionskernaux_[u|i]toa,kernaux_[u|i]toa16and related constants.
- Assertions are used more broadly.
<kernaux.h>- 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.<kernaux/printf.h>- a potential buffer overflow is fixed.
51 files changed, 1647 insertions(+), 501 deletions(-)
./configure- removed options to disable panic calls and returns in<kernaux/assert.h>.<kernaux/assert.h>- removed preprocessor directives that can disable panic calls and returns.
<kernaux/cmdline.h>is stable now. It's a simple command line parser.
- Now
./configureoptions also follow semantic versioning. - Bug fixes in
<kernaux/printf.h>.
Initial release.