* Guile's DATAROOTDIR and DATADIR @ 2016-07-15 9:01 Eli Zaretskii 2016-07-15 17:25 ` Mark H Weaver 0 siblings, 1 reply; 7+ messages in thread From: Eli Zaretskii @ 2016-07-15 9:01 UTC (permalink / raw) To: guile-devel "./configure --help" says: Fine tuning of the installation directories: [...] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] AFAIU, this means PREFIX/share/guile/2.0/ is where the *.scm files will be installed. That is, installing Guile 2.0.12 will overwrite the Scheme files that were installed there by previous Guile 2.0.x versions. If the above is true, then the question that bothers me is whether replacing these files might cause any trouble for programs that were compiled against previous Guile 2.0.x versions (like GDB and Make, for example). If there are potential incompatibilities visible on the Scheme level, then I think a versioned directory under PREFIX/share/guile/2.0/ would be in order, so that several versions of Guile could live on the same system. The same issue arises with the cache directory, where the *.go files are installed (I have those in LIBDIR/guile/2.0/ccache/). Is there a potential problem here? TIA ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-15 9:01 Guile's DATAROOTDIR and DATADIR Eli Zaretskii @ 2016-07-15 17:25 ` Mark H Weaver 2016-07-15 17:46 ` Eli Zaretskii 0 siblings, 1 reply; 7+ messages in thread From: Mark H Weaver @ 2016-07-15 17:25 UTC (permalink / raw) To: Eli Zaretskii; +Cc: guile-devel Eli Zaretskii <eliz@gnu.org> writes: > "./configure --help" says: > > Fine tuning of the installation directories: > [...] > --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] > --datadir=DIR read-only architecture-independent data [DATAROOTDIR] > > AFAIU, this means PREFIX/share/guile/2.0/ is where the *.scm files > will be installed. That is, installing Guile 2.0.12 will overwrite > the Scheme files that were installed there by previous Guile 2.0.x > versions. > > If the above is true, then the question that bothers me is whether > replacing these files might cause any trouble for programs that were > compiled against previous Guile 2.0.x versions (like GDB and Make, for > example). If there are potential incompatibilities visible on the > Scheme level, then I think a versioned directory under > PREFIX/share/guile/2.0/ would be in order, so that several versions of > Guile could live on the same system. > > The same issue arises with the cache directory, where the *.go files > are installed (I have those in LIBDIR/guile/2.0/ccache/). We are aware of these potential issues, which is why we must be careful to ensure ABI compatibility within a stable release series, e.g. within 2.0.x. If we accidentally break something that uses Guile within a stable series, that's a bug. In practice, we seem to be doing a good job of ensuring ABI compatibility within 2.0.x, based on the lack of bug reports of this nature. I don't recall seeing reports of upgrades within 2.0.x causing breakage, outside of simple bugs. Having said this, I will admit that we've not maintained perfect ABI compatibility within 2.0.x, e.g. we've removed some obscure interfaces that were intended to be kept private, or were broken and could not be easily fixed, and that we believed to be unused in practice. This is not ideal, and I think we will need to be much more strict about this in the future, as Guile becomes more widely used. In any case, to the extent that there's a problem here, the solution is to redouble our efforts to avoid ABI breakage. The solution is most definitely *not* to have separate directories for every maintenance release. The reason is that we want existing Guile programs compiled against 2.0.11 to benefit from the bug fixes in 2.0.12. Does that make sense? Mark ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-15 17:25 ` Mark H Weaver @ 2016-07-15 17:46 ` Eli Zaretskii 2016-07-16 8:39 ` Mark H Weaver 2016-07-16 9:06 ` Andy Wingo 0 siblings, 2 replies; 7+ messages in thread From: Eli Zaretskii @ 2016-07-15 17:46 UTC (permalink / raw) To: Mark H Weaver; +Cc: guile-devel > From: Mark H Weaver <mhw@netris.org> > Cc: guile-devel@gnu.org > Date: Fri, 15 Jul 2016 13:25:46 -0400 > > Having said this, I will admit that we've not maintained perfect ABI > compatibility within 2.0.x, e.g. we've removed some obscure interfaces > that were intended to be kept private, or were broken and could not be > easily fixed, and that we believed to be unused in practice. This is > not ideal, and I think we will need to be much more strict about this in > the future, as Guile becomes more widely used. > > In any case, to the extent that there's a problem here, the solution is > to redouble our efforts to avoid ABI breakage. The solution is most > definitely *not* to have separate directories for every maintenance > release. The reason is that we want existing Guile programs compiled > against 2.0.11 to benefit from the bug fixes in 2.0.12. > > Does that make sense? It make sense if it indeed works in practice. You seem to say there are in fact ABI incompatibilities in the 2.0.x series, and if that's indeed true, then the only way to avoid trouble is to rebuild and reinstall all the packages that are linked against Guile, once I install the latest Guile. That is unfortunate, to say the least, since Guile is already used in important GNU packages such as GDB and Make. Is it possible to publish the list of ABI incompatibilities between 2.0.11 and 2.0.12 specifically? Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-15 17:46 ` Eli Zaretskii @ 2016-07-16 8:39 ` Mark H Weaver 2016-07-16 10:29 ` Eli Zaretskii 2016-07-16 9:06 ` Andy Wingo 1 sibling, 1 reply; 7+ messages in thread From: Mark H Weaver @ 2016-07-16 8:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: guile-devel Eli Zaretskii <eliz@gnu.org> writes: >> From: Mark H Weaver <mhw@netris.org> >> Cc: guile-devel@gnu.org >> Date: Fri, 15 Jul 2016 13:25:46 -0400 >> >> Having said this, I will admit that we've not maintained perfect ABI >> compatibility within 2.0.x, e.g. we've removed some obscure interfaces >> that were intended to be kept private, or were broken and could not be >> easily fixed, and that we believed to be unused in practice. Sorry, my statement above was in error. It was based on a false claim made by David Kastrup here: http://article.gmane.org/gmane.emacs.devel/174438 He wrote that our NEWS file "lists plenty of things that have been _removed_ during the stable-2.0 branch, breaking existing uses", but the examples he cited were *deprecations*, not removals. Existing uses continue to work throughout the 2.0.x series. I spent some time searching our NEWS file for examples of *actual* ABI breakage in 2.0.x, and I didn't find anything. >> In any case, to the extent that there's a problem here, the solution is >> to redouble our efforts to avoid ABI breakage. The solution is most >> definitely *not* to have separate directories for every maintenance >> release. The reason is that we want existing Guile programs compiled >> against 2.0.11 to benefit from the bug fixes in 2.0.12. >> >> Does that make sense? > > It make sense if it indeed works in practice. As I wrote in my previous message, it does indeed seem to work in practice, based on the lack of bug reports indicating otherwise. If you have evidence to the contrary, please bring it to our attention. > Is it possible to publish the list of ABI incompatibilities between > 2.0.11 and 2.0.12 specifically? I'm not aware of any. Mark ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-16 8:39 ` Mark H Weaver @ 2016-07-16 10:29 ` Eli Zaretskii 0 siblings, 0 replies; 7+ messages in thread From: Eli Zaretskii @ 2016-07-16 10:29 UTC (permalink / raw) To: Mark H Weaver; +Cc: guile-devel > From: Mark H Weaver <mhw@netris.org> > Cc: guile-devel@gnu.org > Date: Sat, 16 Jul 2016 04:39:24 -0400 > > > It make sense if it indeed works in practice. > > As I wrote in my previous message, it does indeed seem to work in > practice, based on the lack of bug reports indicating otherwise. If you > have evidence to the contrary, please bring it to our attention. > > > Is it possible to publish the list of ABI incompatibilities between > > 2.0.11 and 2.0.12 specifically? > > I'm not aware of any. Great, this means the problem doesn't exist. Thanks. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-15 17:46 ` Eli Zaretskii 2016-07-16 8:39 ` Mark H Weaver @ 2016-07-16 9:06 ` Andy Wingo 2016-07-16 10:33 ` Eli Zaretskii 1 sibling, 1 reply; 7+ messages in thread From: Andy Wingo @ 2016-07-16 9:06 UTC (permalink / raw) To: Eli Zaretskii; +Cc: Mark H Weaver, guile-devel On Fri 15 Jul 2016 19:46, Eli Zaretskii <eliz@gnu.org> writes: > Is it possible to publish the list of ABI incompatibilities between > 2.0.11 and 2.0.12 specifically? Any incompatible change between 2.0.12 and a previous release in the 2.0.x series is a bug. It is impossible to make a list of all bugs in a project of course :) I do not know of any incompatibility introduced in 2.0.12. Andy ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Guile's DATAROOTDIR and DATADIR 2016-07-16 9:06 ` Andy Wingo @ 2016-07-16 10:33 ` Eli Zaretskii 0 siblings, 0 replies; 7+ messages in thread From: Eli Zaretskii @ 2016-07-16 10:33 UTC (permalink / raw) To: Andy Wingo; +Cc: mhw, guile-devel > From: Andy Wingo <wingo@pobox.com> > Cc: Mark H Weaver <mhw@netris.org>, guile-devel@gnu.org > Date: Sat, 16 Jul 2016 11:06:06 +0200 > > Any incompatible change between 2.0.12 and a previous release in the > 2.0.x series is a bug. It is impossible to make a list of all bugs in a > project of course :) > > I do not know of any incompatibility introduced in 2.0.12. Thanks, that's good to hear. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-07-16 10:33 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-07-15 9:01 Guile's DATAROOTDIR and DATADIR Eli Zaretskii 2016-07-15 17:25 ` Mark H Weaver 2016-07-15 17:46 ` Eli Zaretskii 2016-07-16 8:39 ` Mark H Weaver 2016-07-16 10:29 ` Eli Zaretskii 2016-07-16 9:06 ` Andy Wingo 2016-07-16 10:33 ` Eli Zaretskii
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).