skalibs
Software
www.skarnet.org

Upgrade incompatibilities: notes for developers

from 1.2.3 to 1.2.4

No API incompatibilities.

from 1.2.2 to 1.2.3

Some functions have been redefined as macros.

from 1.2.1 to 1.2.2

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.

from 1.2.0 to 1.2.1

The lolstdio.h functions have been added.

from 1.1.1 to 1.2.0

Some of the avlnode, avltree and avltreen functions have a slightly different, better API.

from 1.1.0 to 1.1.1

No API incompatibilities.

to 1.1.0

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.

to 1.0.4

 No API incompatibilities.

to 1.0.3

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.

from 1.0.0 to 1.0.1 or 1.0.2

No API incompatibilities.

from 0.47 to 1.0.0

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.

from 0.46 to 0.47

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.

from 0.45 to 0.46

from 0.44 to 0.45

No API incompatibilities.

from 0.43 to 0.44

from 0.42 to 0.43

from 0.41 to 0.42

from 0.40 to 0.41

from 0.39 to 0.40

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.

from 0.38 to 0.39

No API incompatibilities.

from 0.37 to 0.38

Less functions and more macros in fmtscan.h.

from 0.36 to 0.37

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.

from 0.35 to 0.36

No API incompatibilities.

from 0.34 to 0.35

from 0.33 to 0.34

No API incompatibilities.

from 0.32 to 0.33

No API incompatibilities.

from 0.31 to 0.32

No API incompatibilities.

from 0.30 to 0.31

No API incompatibilities. The available namespace has been reduced because of name changes in the fmtscan functions; but the "old" names are still working.

from 0.29 to 0.30

No API incompatibilities.

from 0.28 to 0.29

No API incompatibilities.

from 0.27 to 0.28

No API incompatibilities.

from 0.26 to 0.27

No API incompatibilities. Only the packaging has changed.

from 0.25 to 0.26

No API incompatibilities. The internal build order has changed, but you shouldn't be relying on it anyway.

from 0.24 to 0.25

from 0.23 to 0.24

from 0.22 to 0.23

from pre-0.22 to 0.22