On 2010-09-10 16:21-0700 Alan W. Irwin wrote:
The Debian version 1.6 of abi-compliance checker doesn't work at all, but I discovered that a downloaded version 1.21.4 of this perl script works fine for simple PLplot libraries like libqsastime. That result was most encouraging. Therefore, I have checked in (revision 11164) what I have accomplished so far.Note my work is not ready for prime time yet. For example, if the two headers required for libqsastime are expanded to the full set of PLplot headers abi-compliance-checker currently stops with a compile error. This weekend, I hope to rectify this issue and others to achieve the goal of making Hazen's API checking life as simple as possible for each of our C and C++ libraries.
Hi Hazen: scripts/check_backwards_incompatible_api.sh should be ready for prime time now (revision 11179). It checks that you have abi-compliance-checker.pl version 1.21.4 (downloadable from http://linuxtesting.org/downloads/abi-compliance-checker-1.21.4.tar.gz) on your PATH, builds and installs the working copy of PLplot, and downloads, builds, and installs the reference released tarball (defaults to 5.9.6). Finally, it runs abi-compliance-checker.pl to check whether there have been any backwards-incompatible changes in any of our libraries between the installed reference version and installed working copy. Could you please run that script without arguments to make sure it works properly for you? On my system (fully loaded Debian testing) it originally gave a bad compatibility report against 5.9.6, but revision 11177 (where I reordered the PLStream struct using the comment //CONSTANT SOVERSION FIX ) fixed that (gratuitous) broken backwards API compatibility. I have attached the html report file which abi-compliance-checker.pl generates here which you should compare with the one you generate. As Orion suggested off list, if you mark reordering changes carefully (as I have done with the above comment), then when we are absolutely forced to bump soversion of libplplotd due to some change which we cannot work around (say by reordering a struct), it should be straightforward to take that opportunity to change back the struct to optimal order.BTW, abi-compliance-checker seems to be a fast-moving target. Although the above URL for the 1.21.4 version still works and is the
one I have used, the website now only refers to 1.21.6 in the patched version of 1.21. At some point I will download a later version of abi-compliance-checker, update the script to use it, and make sure the script gives a good report with it for PLplot, but for now, let's stick with 1.21.4 since I _know_ that version works, and it is still downloadable. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________Title: ABI compliance report for the library plplotd from version r5.9.6 to r11176M on x86_64
ABI compliance report for the library plplotd from version r5.9.6 to r11176M on x86_64
Summary
Total header files | 19 |
Total shared objects | 11 |
Total interfaces / types | 643 / 174 |
Verdict | Compatible |
Problem Summary
Added Interfaces | 1 | |
Withdrawn Interfaces | 0 | |
Problems in Data Types | High risk | 0 |
Medium risk | 0 | |
Low risk | 2 | |
Interface Problems | High risk | 0 |
Medium risk | 0 | |
Low risk | 0 | |
Problems in Constants | 0 |
Added Interfaces (1)
plplot.h, libplplotd.so.9.8.0
c_pllegend ( PLFLT line_length, PLFLT x, PLFLT y, PLINT n, PLINT* text_colors, char** names, PLINT* colors, PLINT nsymbols, PLINT* symbols )
to the top
Problems in Data Types, Low risk (2)
Shorthand notations: RetVal - function's return value; this - pointer to method's object (C++).
plstrm.h
[+] PLStream (2)
to the top
Header Files (19)
disptab.h
drivers.h
pdf.h
plConfig.h
pldebug.h
plDevs.h
pldll.h
plevent.h
plplot.h
plplotP.h
plstream.h
plstrm.h
pltcl.h
pltk.h
plxwd.h
qsastime.h
qsastimedll.h
qt.h
tclMatrix.h
to the top
Shared Objects (11)
libcsirocsa.so.0.0.1
libcsironn.so.0.0.1
libplplotcxxd.so.9.3.0
libplplotd.so.9.8.0
libplplotqtd.so.0.0.1
libplplottcltkd.so.9.2.0
libplplotwxwidgetsd.so.0.0.0
libqsastime.so.0.0.1
libtclmatrixd.so.9.2.0
qt.so
wxwidgets.so
to the top
Generated on Mon Sep 13 21:19:16 2010 for plplotd by ABI-compliance-checker 1.21.4
------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel