Hello, On Dec 19 11:52 m. allan noah wrote (shortened): > On Dec 19, 2007 9:41 AM, Colin Hogben <sane at pythontech.co.uk> wrote: > ... > > Another important point to allow smooth migration: we must not change > > existing interfaces (i.e. ABI) but we may augment them. E.g. do not > > change the definition of SANE_Device (and therefore sane_get_devices()). > > instead, define SANE_Device2 structure with the new fields, and a new > > method sane_get_devices2() which returns them. > > i think the idea is nice in principal, though the specifics of using > the obfuscated version number are not that pleasant.
Only for your information: A successful example where they did it this way is CUPS, see their API documentation e.g. at http://www.cups.org/documentation.php/api-cups.html When possible only the newest function (e.g. cupsGetPPD2) is really implemented and the old one (e.g. cupsGetPPD) has become only a wrapper for the new one. Personally I like function names with version numbers. I don't think they are "obfuscated". In contrast I think they make the issue clear. Note that the LSB people think about to establish SANE1 as LSB conformant scanner interface (e.g. for LSB 3.2) so that any new API/ABI which is not backward compatible will not be LSB conformant. Remember the mail thread with subject "LSB DDK: Support for scanner drivers/SANE into LSB 3.2?" http://lists.alioth.debian.org/pipermail/sane-devel/2007-June/019448.html If SANE1 became a LSB standard and if there was an incompatible new API/ABI, at least we (i.e. Novell/Suse) would have the problem that on the one hand our distribution must be LSB conformant (which means we must provide SANE1 for a longer time) but on the other hand we like to provide up-to-date packages. Of course we could simply provide two packages "sane-backends" and "sane2-backends" but then there might be confusion when some users run a LSB conformant system while others run an up-to-date system. By the way: Physicists still inversigate what the "big bang" really was so that it is questionable how to do another "big bang" ;-) Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex
