Hello, First thing, I think that there should be no versionning for XSUB shared object, as they are dlopened, not real libraries. The corresponding libtool option should -avoid-version.
To avoid incompatible perl XSUB (binary) interfaces, there is a check that the version used in XSParagraph.pm when calling bootstrap is the same as what was used when compiling the xsub code, (either with -DVERSION or -DXS_VERSION or both?). Currently $VERSION is used, which corresponds to the number in XSParagrah/configure.ac. I wonder if it wouldn't be better to have a number for this check that would only change when the (binary) interface changes, a bit like what is used for versioning libraries using sonames (libtool -version-info or -release), maybe like a serial number. For example a variable named XSParagraph_INTERFACE_VERSION, would be set in configure.ac and used in Makefile.am (and in Makefile.PL for the standalone module if building a standalone module is still possible) for -DXS_VERSION (and -DVERSION?) and independently set in XSParagraph.pm for the bootstrap XSUB initialization version check. This manual setting would make sure that XSParagraph.pm is updated when incompatible changes in the interface are done. Another possibility would be to disable checking, with xsubpp option -noversioncheck. -- Pat
