skalibs: how to upgrade
Keywords: skalibs installation upgrade

skalibs
Software
skarnet.org

# What has changed in skalibs

## in 2.3.6.1

- No functional changes.

## in 2.3.6.0

- New function: `openreadnclose_nb`.

## in 2.3.5.2

- No functional changes.

## in 2.3.5.1

- No functional changes.

## in 2.3.5.0

- New functions: bitarray_count(), openwritevnclose_at()

## in 2.3.4.0

- New function: stat_at()
- The rest of the changes are bugfixes or QoL.

## in 2.3.3.0

- New sha512 functions, see `skalibs/sha512.h`

## in 2.3.2.0

- New macro: gid0_scan()

## in 2.3.1.3

- Bugfix release, no functional changes.

## in 2.3.1.2

- The child_spawn* family of functions now resets all signals to their default values when spawning a program on systems with posix_spawn(). This should not change anything - it's just paranoia.
- Minor bugfixes.

## in 2.3.1.1

- Bugfix release, no functional changes.

## in 2.3.1.0

- wait_status() now returns 256 + signal number when WIFSIGNALED().
- new macro wait_estatus() to get WIFSIGNALED information in an exit code.
- new functions in djbunix.h: hiercopy(), hiercopy_tmp()

## in 2.3.0.1

- wait_status() now returns 256 (instead of 126) when WIFSIGNALED().

## in 2.3.0.0

- buffer_getvall and buffer_putvall have a different interface. (And now work.)
- buffer_read and buffer_write are now deprecated.
- various siovec additions, such as siovec_trunc

## in 2.2.1.0

- unixconnection added.
- sig_name and sig_number added.

## in 2.2.0.0

- TAI64 and TAI64N conversion functions revisited. API slightly changed, made more consistent.

## in 2.1.0.0

- unixmessage_drop added, part of unixmessage/skaclient hardening against fd leakage
- unixmessage_sender_flush return code aligned with the convention in the rest of skalibs
- unixmessage_sender_flush now handles short writes
- skaclient_start(_async) prototype changed: now takes an option argument

## in 2.0.0.0

- The packaging system has completely changed.
- Programs should now link with `-lskarnet` followed by the appropriate sysdeps links.
- No compatibility is ensured. Most APIs haven't changed, but no guarantee is offered.
- The most important change is probably the disparition of `struct tai` and `struct taia`, replaced with the `tai_t` and `tain_t` types. Attosecond precision has been removed - processor speed is almost capped now, and it looks like nanosecond precision will be enough for the foreseeable future.
- Buffer implementation has changed, and some interfaces too, mainly the buffer_flush and bufalloc_flush return code.
- skaclient, skalibs' client-server communication suite, has been entirely reimplemented: it's now using the new "unixmessage" set of primitives for easier fd-passing.