Skip to content

Releases: jgabaut/koliseo

0.4.6 - Add support for custom error handlers, drop ncurses, title features

02 Sep 12:16
ec00eda
Compare
Choose a tag to compare

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 to KLS_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 custom KLS_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

09 Aug 12:44
f9baf14
Compare
Choose a tag to compare

What's Changed

  • Turns on the config flag introduced by previous patch for both internal default configs
  • 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

08 Aug 04:10
4d80df6
Compare
Choose a tag to compare

What's Changed

Added

  • Add field to KLS_Conf to selectively block usage of a Koliseo while it has a Koliseo_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 with KOLISEO_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 after koliseo.h inclusion.
  • 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 whole windows.h for the needed timing calls
  • Corrected README about the current Region list implementation
  • Bump invil to 0.2.15
  • Bump anvil version in stego.lock to 2.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

27 Apr 15:05
c777489
Compare
Choose a tag to compare

What's Changed

  • Added static/list_example.c
  • Fix: clean some warnings
    • Use %td format specifier for ptrdiff_t
    • Use const for some signature for unmodified pointers
    • PR by @khushal-banks
  • Bump amboso to 2.0.6
  • Bump invil to 0.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

09 Apr 03:07
15367a8
Compare
Choose a tag to compare

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, after kls_
  • Bump amboso to 2.0.5
  • Bump invil to 0.2.9
  • Bump scripts/bootstrap_anvil.sh to v0.2
  • Refactor WINDOWS_BUILD preproc macros to use _WIN32
  • Fix basic_example.c using <0.4.x macro signature
  • Fix type arg in KLS_PUSH_T_ARR_NAMED() definition

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

03 Mar 14:31
dd2ce58
Compare
Choose a tag to compare

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.
  • Move pop() functions under experimental feature
    • Building without defining KOLISEO_HAS_EXPER doesn't include them.
  • Add kls_conf_init() as a convenience (since a designated initialiser would have to be coded as feature-sensitive over the Region-only field)
  • KLS_Stats's worst_pushcall_time requires KLS_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 a Koliseo
  • 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 plain kls_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 to 2.0.4
  • Bump invil to 0.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

05 Feb 16:05
ccee0be
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Add const default for KLS_BASIC reglist Koliseo
  • Refactor core macros functions
  • Update KLS_Conf_Fmt to print a string for the reglist backend
  • Bump amboso to 2.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

28 Dec 03:23
3063ab9
Compare
Choose a tag to compare

What's Changed

  • Refactor MINGW32_BUILD defines to WINDOWS_BUILD
  • Bump amboso to 2.0.0
  • Bump invil to 0.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

22 Dec 02:20
c2a617e
Compare
Choose a tag to compare

What's Changed

  • Add libkoliseo.a target
  • make pack includes README
  • Bump invil to 0.1.7
  • Run ldconfig on make 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()

17 Dec 09:52
4c964af
Compare
Choose a tag to compare

What's Changed

  • feat: 0.3.18 invil 0.1.6, add kls_dbg_features() by @jgabaut in #58

Full Changelog: 0.3.17...0.3.18