Releases: jgabaut/koliseo
0.4.6 - Add support for custom error handlers, drop ncurses, title features
What's Changed
Added
- Add support for custom error handlers in
push
calls- Out-Of-Memory
PTRDIFF_MAX
constraint violation
- Add
KLS_Err_Handlers
to hold the handlers together - Add new
err_handlers
field toKLS_Conf
- Add default handlers for all existing APIs:
#ifndef KOLISEO_HAS_LOCATE void KLS_OOM_default_handler__( Koliseo* kls, ptrdiff_t available, ptrdiff_t padding, ptrdiff_t size, ptrdiff_t count ); void KLS_PTRDIFF_MAX_default_handler__( Koliseo* kls, ptrdiff_t size, ptrdiff_t count ); #else void KLS_OOM_default_handler_dbg__( Koliseo* kls, ptrdiff_t available, ptrdiff_t padding, ptrdiff_t size, ptrdiff_t count, Koliseo_Loc loc ); void KLS_PTRDIFF_MAX_default_handler_dbg__( Koliseo* kls, ptrdiff_t size, ptrdiff_t count, Koliseo_Loc loc ); #endif // KOLISEO_HAS_LOCATE
- Add new constructors with custom OOM handler arguments
kls_new_traced_handled() // Macro
kls_new_dbg_handled() // Macro
kls_new_traced_AR_KLS_handled() // Function
kls_new_traced_alloc_handled() // Function
kls_new_dbg_alloc_handled() // Function
kls_new_traced_AR_KLS_alloc_handled() // Function
- Add new
kls_conf_init_handled()
to pass handlers with a customKLS_Conf
- Add
KLS_DEFAULT_ERR_HANDLERS
macro
Changed
- Drop
ncurses
,title
features and all related symbols - The previous banner can be found in
static/kls_banner.c
PR - feat: 0.4.6 Add support for custom error handlers by @jgabaut
Full Changelog: 0.4.5...0.4.6
0.4.5 - Enable block for Temp by default
What's Changed
- Turns on the config flag introduced by previous patch for both internal default configs
- See #77
- Refactor
kls_dbg_features()
PR - feat: 0.4.5 Turn on block for temp by default, refactor kls_dbg_features() by @jgabaut
Full Changelog: 0.4.4...0.4.5
0.4.4 - Add option to block usage with active temp session, drop list template, add --enable-locate
What's Changed
Added
- Add field to
KLS_Conf
to selectively block usage of aKoliseo
while it has aKoliseo_Temp
session open on it- Off by default
- For now, any push call may return
NULL
in this case and print a diagnostic - Future versions may change this to avoid the return and either quit the program immediately or call a passed handler for this specific case
- Add
--enable-locate
to enable building withKOLISEO_HAS_LOCATE
- Causes many core calls to be redefined as macros to automatically pass the caller's location.
- May cause build issues if your object and your header don't agree on wether this feature is on
- A mismatch may show up as undefined symbols being referenced (since the actual implementation will be named differently and has a different signature)
Changed
- Move list template to new file
- Available under
./templates/list.h
. The template should be included only afterkoliseo.h
inclusion.
- Available under
- Rename
__KLS_STRCPY()
to avoid using__[A-Z]*
name, which may be reserved for the compiler - Collect common parts of push ops in internal functions
- Include
profileapi.h
instead of wholewindows.h
for the needed timing calls- Closes #75
- Corrected
README
about the currentRegion
list implementation- Closes #70
- Bump
invil
to0.2.15
- Bump
anvil
version instego.lock
to2.0.6
PR - feat: 0.4.4 Add option to block usage with an active temp session, drop list template, --enable-locate by @jgabaut
Full Changelog: 0.4.3...0.4.4
0.4.3 - Fix some warnings
What's Changed
- Added
static/list_example.c
- Fix: clean some warnings
- Use
%td
format specifier forptrdiff_t
- Use
const
for some signature for unmodified pointers - PR by @khushal-banks
- Use
- Bump
amboso
to2.0.6
- Bump
invil
to0.2.13
PR - feat: 0.4.3 Fix ptrdiff_t specifiers, bump deps by @jgabaut
Full Changelog: 0.4.2...0.4.3
0.4.2 - Add list template
What's Changed
- Add linked list template to generate code, including
Koliseo
-based allocation- Work in progress. May change or be removed soon.
- Rename internal
KLS_Region_List
functions- Adds
rl_
to each identifier, afterkls_
- Adds
- Bump
amboso
to2.0.5
- Bump
invil
to0.2.9
- Bump
scripts/bootstrap_anvil.sh
tov0.2
- Refactor
WINDOWS_BUILD
preproc macros to use_WIN32
- Closes #66
- Fix
basic_example.c
using<0.4.x
macro signature- Closes #65
- Fix type arg in
KLS_PUSH_T_ARR_NAMED()
definition- Closes #68
PR - feat: 0.4.2 Add list template by @jgabaut
Full Changelog: 0.4.1...0.4.2
0.4.1 - Refactor KLS_Region as an optional feature
What's Changed
Breaking
These changes may cause minor breakage when updating from a previous version.
Any previous code should work as expected by defining KOLISEO_HAS_REGION
macro before header inclusion.
- All
KLS_Region
functionalities are now an optional feature- Building without defining
KOLISEO_HAS_REGION
provides a slimmer API.
- Building without defining
- Move
pop()
functions under experimental feature- Building without defining
KOLISEO_HAS_EXPER
doesn't include them.
- Building without defining
- Add
kls_conf_init()
as a convenience (since a designated initialiser would have to be coded as feature-sensitive over theRegion
-only field) KLS_Stats
'sworst_pushcall_time
requiresKLS_DEBUG_CORE
- Pack name starts with
$(SHARED_LIB)
Updating
A good approach to updating would be:
- Trying to build without defining
KOLISEO_HAS_REGION
- Ensuring to use
kls_conf_init()
if you don't like having preprocessor macros in your code - Otherwise, a wise macro-guarding of your previously-non-optional functions with the should be all that's needed.
New
- Add
KLS_PUSH_STR()
macros to push C strings to aKoliseo
- Support arbitrary allocation function for backing buffer
kls_new_alloc()
takes a malloc-like function pointer to use- Defining
KLS_DEFAULT_ALLOCF
to be the name of your function will ensure your custom function will be called even on plainkls_new()
calls
- Add
KLS_PUSH_EX()
macros to automate passing a description field to pushes (defaults to passed type stringification)
Notes
- Move title banner shenanigans under an optional feature
- Bump
amboso
to2.0.4
- Bump
invil
to0.2.8
PR - feat: 0.4.1 KLS_Region is an optional feature by @jgabaut
Full Changelog: 0.4.0...0.4.1
0.4.0 - Update core macros
What's Changed
- Add const default for
KLS_BASIC
reglistKoliseo
- Refactor core macros functions
- Update
KLS_Conf_Fmt
to print a string for the reglist backend - Bump
amboso
to2.0.3
PR - feat: 0.4.0 Add ARR macro definitions, refactor old macros not to take count arg by @jgabaut
Full Changelog: 0.3.20...0.4.0
0.3.20 - Improve configure.ac
What's Changed
- Refactor
MINGW32_BUILD
defines toWINDOWS_BUILD
- Bump
amboso
to2.0.0
- Bump
invil
to0.2.1
- Add
SHARED_LIB
define, which is now also in pack chain (build.dll
for Windows build)
PR - feat: 0.3.20 improve configure.ac by @jgabaut
Full Changelog: 0.3.19...0.3.20
0.3.19 - Add rule to build .a lib
What's Changed
- Add
libkoliseo.a
target make pack
includesREADME
- Bump
invil
to0.1.7
- Run
ldconfig
onmake install
- Fix format
PR - feat: 0.3.19 add target for .a lib @jgabaut
Full Changelog: 0.3.18...0.3.19
0.3.18 - Bump invil to 0.1.6, add kls_dbg_features()
What's Changed
Full Changelog: 0.3.17...0.3.18