Re: platform compatibility policy



On Mon, Dec 04, 2000 at 02:53:32PM +0000, Colm Smyth wrote:
> First of all, I believe that source and binary compatability 
> should only be required for stable *public* interfaces.  

Agreed.  One of the first things I did when starting out with Gtk+ was
to ask where the API docs were, because I was not willing to use the
header files. My unwillingness stemmed from the idea that the header
files would declare private as well as public functions (since C
in general lacks the idea of a package-private label), and I had an
expectation that if I programmed to the documented API, my programs
would continue to work in gnome 1.2, 1.4 etc.

> If maintainers ensure that they have a small number of header files
> that define their public interface, then they only have to watch
> these files to be sure that code changes have not broken an
> API or ABI.
Yes.

In my text retrieval package, which had an API used by other people, I used
#define API extern
#define DEPRECATED extern
#define LIBRARY extern
#define PRIVATE static
and then used those qualifiers for every function definition.
Only the API functions were brought through into the documentation.

The result is that people could avoid using non-API functions or definitions.
This apporach didn't work with type definitions or constants, though.

> If there is any interest in such a tool for GNOME, I can contact
> the team at Sun responsible for AppCert to see if they
> could contribute the AppCert tool-set to open-source
> for use in the GNOME project.
I think that would be fabulous.

Backwards binary compatibility is an area at which Solaris is very good;
I have binaries from SunOS 4 dated 1991 that still run fine, even
including X applications.  Of course, I have VAX/11 binaries for BSD 4.1
and 4.2, and PDP/11 V6 binaries, that would probably still run on netbsd
if I had a vax :-)

Colm - I also think your mail posting could usefully be put on the gnome
web site somewhere.  Many open source programmers are new to the idea of
long-term compatibility, and a short introduction like that is very helpful.

Lee

-- 
Liam Quin - Barefoot in Toronto - liam holoweb net - http://www.holoweb.net/
Ankh: irc.sorcery.net www.valinor.sorcery.net irc.gnome.org www.advogato.org
author, The Open Source XML Database Toolkit, Wiley, August 2000
Co-author, The XML Specification Guide, Wiley, 1999

_______________________________________________
gnome-hackers mailing list
gnome-hackers gnome org
http://mail.gnome.org/mailman/listinfo/gnome-hackers




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