bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: versioning of XSUB interfaces


From: Gavin Smith
Subject: Re: versioning of XSUB interfaces
Date: Tue, 18 Aug 2015 11:22:27 +0100

On 18 August 2015 at 10:52, Patrice Dumas <address@hidden> wrote:
> 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.

The "6.0dev" has come back for me a few times as well. I don't see why
any versioning at all is needed. The modules are installed along with
texi2any so out-of-date modules shouldn't get used. xsubpp
-noversioncheck seems like a good idea. Another idea is to use a
different variable from $VERSION when calling the XSUB bootstrap
function, so it doesn't get updated: this would keep version checking
as a safety check, which could be useful occasionally. Then again,
someone might want to use an out-of-date module deliberately, so why
stop them.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]