Hi, Am Dienstag, den 05.02.2013, 10:53 +0000 schrieb Steve McIntyre: > Paul Wise wrote: > >On Tue, Feb 5, 2013 at 7:14 AM, Michael Stapelberg wrote: > > > >> Assuming we ship Go libraries compiled as shared libraries, where do we > >> get the SONAME from? There is no mechanism for Go libraries to declare > >> an ABI break. Inventing one and asking all upstream projects to adopt it > >> seems unlikely to succeed. Ignoring SONAMEs altogether could make > >> software break on the user’s installation. Then again, the same could > >> happen to every interpreted language, e.g. Perl. > > FFS, yet another new language where the implementors have refused to > think ahead and consider ABI handling? Idiots. :-( > > >Could it be automatically created based on some sort of hash of the > >exported symbols and their argument lists? > > > >If not, based on your discussions with upstream I would say that the > >culture of the Go development community is incompatible with shared > >libraries. So your choices are: > > > >Convince Go upstream to add an officially-supported and encouraged > >shared library mechanism that includes ABI mechanisms. > > > >Invent some automatic, Debian-specific method for ABI stuff. Like > >Provides: go-foo-abi-<hash> and put that info in shlibs. > > > >Use static libraries, Built-Using and frequent binNMUs. > > Considering the mess that we already have with (for example) Haskell > in this respect, I would vote strongly against accepting or pretending > to support any more languages in this vein. At least to me my work on Haskell in Debian feels more than pretending, and from personal experience with the creators of the language, I have strong doubts that they are Idiots. In fact I don’t see how you can have modern features like cross-module-inlining without having to potentially recompile depending packages. And it is clearly not (anymore) the case that ABIs are not handled in Haskell. In fact they are handled in a very precise way that allows us to guarantee on the package level that user’s installations won’t get broken. I think our priorities should be the user’s experience, and we should be willing to accept a little infrastructural complications on our side for that goal. Also, I’d like to point out that the challenges provided by languages like OcaML and Haskell have motivated improvements to our infrastructure that benefit the project in general, such as the BD-Uninstallable support in wanna-build that has prevented a lot of failed builds (and hence manual intervention). Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: This is a digitally signed message part