Review API changes from v0.25 to v0.26
I've used the follow bash to investigate:
$ nm -gj /mmHD/Users/rmills/gnu/exiv2/trunk/src/.libs/libexiv2.14.dylib | while read line; do c++filt $line ; done | sort | tee ~/temp/v26.txt | wc 1474 4245 81191 $ nm -gj /mbpHD/Users/rmills/gnu/exiv2/v0.25/src/.libs/libexiv2.14.dylib | while read line; do c++filt $line ; done | sort | tee ~/temp/v25.txt | wc 1400 3979 75568 $As you can see, there are 74 more externals in v0.26. Most are the very obvious new APIs such as printStructure, INIReader and WebP, JpegBase and IccProfile support.
$ grep -e JpegBase -e printStructure -i -e webp -e INIReader -e IccProfile ~/temp/v26.txt | wc 83 230 5079 $ grep -e JpegBase -e printStructure -i -e webp -e INIReader -e IccProfile ~/temp/v25.txt | wc 35 60 1326This takes care of about 48 differences. There are quite a number of changes to system calls in use. For example _msync is no longer used. 6 pthread_rwlock APIs are now in use.
The changes all feel reasonable to me. Andreas is entitled to feel otherwise.
I have a proposal to discuss with Andreas about to standardising the API in v0.27 so that it will never change. I'll discuss this when we meet in KL. If we implement my proposal and discover no API changes for v0.28, we may be able rename v0.28 as v1.0.