skalibs
Software
www.skarnet.org
No API incompatibilities.
Bugfix release. No API changes.
The internals of genset(dyn) have changed. Instead of using a bitarray to find empty cells, they now use a stack of free cell numbers. This takes more storage space, but finds a new free cell in O(1) instead of O(n).
ip4_scanlist() has changed again. The old function is available as ip4_scanlist_u32().
IPv6 support has been fleshed out. socket_tcp() and socket_udp() are now called socket_tcp4() and socket_udp4(); there are macros for compatibility.
Old functions and macros marked deprecated for a long time have been removed.
fmtscan.h has been reorganized. There are now ushort.h, uint.h and ulong.h headers for basic integer type management. struct taia's prototype has been changed to use uint32s.
socket_ipoptionskill() has been removed, because there's no way to implement it even in a semi-portable way.
Some portability quirks have been moved to the new nonposix.h header.
The PROG global variable is now declared in libstddjb. Programs that use strerr2.h do not need to define PROG anymore. However, they should assign it a proper value when the executable starts.
The ip4_scanlist() function API has changed, to become compatible with the other scanning functions.
Tha libancillary API has been simplified: buffers are now auto-allocated on the stack.
New APIs have been added : _g versions of timed functions to use a global stamp variable, ip46.h for unified IPv4 and IPv6 network functions.
Most of the biguint API has changed. Now there is no arbitrary limit to integer length - except stack space.
sysdeps.h has been moved to the include/ subdirectory.
FHS support has been added. See the end of this page for the rationale, and the general skarnet.org configuration page for how to proceed.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities; envdir() is now a macro, the underlying function is envdir_internal().
No API incompatibilities, unless you're using non-documented functions, but the changes should be transparent anyway.
No API incompatibilities.
Some functions have been redefined as macros.
buffer_0 is now an alias to &buffer_0_ instead of an object. Same thing with other predefined buffers.
localtm_from_ltm64() now returns 0 EOVERFLOW (instead of 0 EINVAL) when attempting to convert a date that does not fit in a time_t (for instance a date posterior to 2038).
The genwrite.h functions have been added.
The lolstdio.h functions have been added.
Some of the avlnode, avltree and avltreen functions have a slightly different, better API.
No API incompatibilities.
The short_scan(), int_scan() and long_scan() functions now stop scanning when they detect an overflow, instead of silently scanning on and parsing the wrong value.
No API incompatibilities.
The sig_catcha() function does not save the old signal handler anymore; now it's a macro. The sig_restore() function has also become a macro, and it amounts to resetting the signal to the default action. If you want to save old signal handlers, use the sig_push() and sig_pop() functions.
No API incompatibilities.
The build system has changed.
A lot of APIs have changed.
Some functions have been moved between libraries. Some libraries have disappeared. Compatibility with previous releases of skalibs is not ensured.
A little documentation has appeared. The functions that are documented are now forming a stable API, which should not change anymore. Functions that are declared in the include files but that remain undocumented are not part of the stable API yet. More documentation will be provided in future releases, extending the stable API.
libdns has disappeared for good. A replacement will be provided in the s6-dns package.
A lot of new functionalities are available.
Several small bugs (and a big one) have been fixed.
More small bugs have probably been added, but not that much.
iopause() doesn't use floating-point operations anymore. Also, the new recommended interface is iopause_stamp().
Memory management, and general efficiency, have been greatly enhanced.
No API incompatibilities.
The installer has changed (links in /usr/local aren't performed automatically anymore) but it shouldn't impact this package: there are no /usr/local links for skalibs anyway.
No API incompatibilities.
The allreadwrite interface has been changed: allread, allwrite and other looping functions now return an unsigned int, which is the number of processed bytes. If this number is lesser than the number requested, errno will describe what happened. EPIPE on a reading operation means EOF.
The default signal mask when entering a signal handler has been changed from empty to full, but this is saner. If you were relying on the old behaviour, your code was buggy.
No API incompatibilities.
Less functions and more macros in fmtscan.h.
All the *_fmt functions have been replaced by macros. Programs using &uint_fmt, for instance, will not work anymore; the only remaining unsigned format function is uint64_fmt - and its octal and hexadecimal counterparts. Please do not assume that a function defined in fmtscan.h will remain a function; more functions are likely to be replaced by macros in future versions of skalibs.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities. The available namespace has been reduced because of name changes in the fmtscan functions; but the "old" names are still working.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities.
No API incompatibilities. Only the packaging has changed.
No API incompatibilities. The internal build order has changed, but you shouldn't be relying on it anyway.