[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
versioning of XSUB interfaces
From: |
Patrice Dumas |
Subject: |
versioning of XSUB interfaces |
Date: |
Tue, 18 Aug 2015 11:52:02 +0200 |
User-agent: |
Mutt/1.5.20 (2009-12-10) |
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
- versioning of XSUB interfaces,
Patrice Dumas <=