2026-08-02 20:44:18

# KC3 v0.1.17 released

KC3 v0.1.17 was released today.

New in this release :

  • libkc3 - copying temporary variables for pthread_mutexandpthread_rwlockwould cause undefined behaviour as per POSIX, this fixes pthread on macOS
  • allow for log hooks (a C function callback with a user pointer) in the facts database
  • incremental compilation with cached parser results in
    .kc3cfiles, like Python does. Gives5x faster loading timesfor all.kc3files.env_loadautomatically handles this.
  • fixed a bug in ht_iterator_nextwhere the iterator would not go through the first collision list
  • database logging now supports and defaults to binary format (marshall + marshall_read)
  • fixed marshall + marshall_read hash table usage
  • str: fixed display of floating point numbers

  • copying temporary variables for

  • Facts - Facts.connect/accept allows for bi-directional synchronization of
    an existing Facts.database()over a TLS encrypted connection after a successful HMAC-SHA256 shared secret authentication challenge/response
  • Facts.acceptaccepts connections one by one
  • Facts.acceptor_loopstarts a thread that calls- accept()in a loop
  • Facts.acceptor_loop_join()stops the acceptor loop cleanly
  • Fixed hash table lookup in marshall reducing every dump by 30%

  • Facts.connect/accept allows for bi-directional synchronization of
    an existing

  • HTTPd - allow for configuration of unveil paths in config/unveil.kc3
  • allow for custom log messages in error and request log

  • allow for configuration of unveil paths in

  • HTTPS - HTTPS.Clientwith libtls and automatic or manual connection- GET method
  • POST method
  • JSON response

  • JSON - fixed parser- boolean trueorfalseâ Bool

  • map {"key", "value"}â Map%{"key" => "value"}
  • array [1, 2, 3]â List[1, 2, 3]

  • boolean

  • fixed parser

  • RUsage - current-process statistics for user and system CPU time, current and maximum resident memory, virtual memory, and open files
  • RUsage.stats()returns all statistics in a single map