All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Jaroslav Kysela <perex@perex.cz>
Cc: ALSA development <alsa-devel@alsa-project.org>
Subject: Re: new "in-compatible" alsa-lib PCM API
Date: Wed, 18 Sep 2002 11:36:04 +0200	[thread overview]
Message-ID: <s5hy99zr663.wl@alsa2.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.33.0209171436440.537-100000@pnote.perex-int.cz>

At Tue, 17 Sep 2002 14:58:42 +0200 (CEST),
Jaroslav Kysela wrote:
> 
> Hi all,
> 
> 	I've made a simple cleanup which unifies all snd_pcm_hw_params_* 
> functions. The first set of changes are in CVS a few days, but some 
> developers pointed that the backwards compatibility is a right thing.
> 	After some thoughs, I think that this sort of cleanups is good for 
> implementing at any time. It doesn't break the implementation (in the 
> sense of behaviour), but it makes that older code is not compilable. 
> Fortunately, any C programmer can fix the compilation in this case, so 
> it's definitely not a big problem.
> 	The much bigger drawback is that we have no binary compatibility 
> with older applications. I decided to use the versioned symbols in the 
> future versions of alsa library and to keep the binary compatibility with 
> older versions of library (function declarations). At the time, we have 
> two symbol versions: ALSA_0.9.0 and ALSA_0.9.0rc4.
> 	These solutions exists for co-existing older and newer 
> applications:
> 
> 1) New "versioned" library is libasound.so.3, so that older applications 
>    uses older libasound.so.2. 
> 2) Recompile older applications with "compatible library" which contains
>    versioned symbols ALSA_0.9, but headers are compatible with 0.9.0rc3. 
>    This library will be also libasound.so.3, but ALL symbols have ALSA_0.9 
>    tag which allows to override functions in future. The compatible library
>    will be built when '--with-compat-rc3' argument is passed to the 
>    configure script in alsa-lib. This solution allows keeping binary 
>    compatibility and allows to update alsa-lib with recent one (built 
>    without --with-compat-rc3).
> 
> I suggest to use the second solution from this time.

using the versioned symbols is a good idea.  it should go into
libasound.so.3 to avoid the further confliction.

but i still wonder whether it's possible not to modify the existing
api functions but to add new functions instead.
modifying the existing function means not only that the library
binares conflict but also that the application code must be changed,
too.  perhaps applications need to check the library version and bunch
of ifdef's or hacks, because many distribution includes still the old
alsa lib.

if we want to _force_ users to follow all the changes (e.g. the
function is really buggy, etc), then we should change the existing
function.
but in other cases - if the old api functions still work somehow -
adding new api functions makes our life happier.
we can put notes in the doc that the functions are obsolete.


Takashi


-------------------------------------------------------
This SF.NET email is sponsored by: AMD - Your access to the experts
on Hammer Technology! Open Source & Linux Developers, register now
for the AMD Developer Symposium. Code: EX8664
http://www.developwithamd.com/developerlab

  parent reply	other threads:[~2002-09-18  9:36 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-17 12:58 new "in-compatible" alsa-lib PCM API Jaroslav Kysela
2002-09-17 17:49 ` Kai Vehmanen
2002-09-17 18:29   ` Jaroslav Kysela
2002-09-18  1:08 ` Jack O'Quin
2002-09-18  9:12   ` Jaroslav Kysela
2002-09-18  9:36 ` Takashi Iwai [this message]
2002-09-18  9:46   ` Richard Bown
2002-09-18 10:06     ` Takashi Iwai
2002-09-18 10:25       ` Richard Bown
2002-09-18 14:23 ` Kai Vehmanen
  -- strict thread matches above, loose matches on Subject: below --
2002-09-17 23:15 Chris Rankin
2002-09-18  8:56 ` Jaroslav Kysela
2002-09-18 12:02   ` Chris Rankin
2002-09-18 12:21     ` Jaroslav Kysela
2002-09-18 13:15       ` Tim Goetze
2002-09-18 13:58         ` Thierry Vignaud
2002-09-18 14:19           ` Paul Davis
2002-09-18 15:08             ` Takashi Iwai
2002-09-18 14:50           ` Tim Goetze
2002-09-18 15:07             ` Richard Bown
2002-09-18 15:18               ` Paul Davis
2002-09-18 15:28                 ` Richard Bown
2002-09-18 15:17             ` Patrick Shirkey
2002-09-18 13:49       ` Paul Davis
2002-09-18 15:00       ` Takashi Iwai
2002-09-18 16:06       ` Jack O'Quin
2002-09-19 15:29         ` Jaroslav Kysela
2002-09-19 19:36           ` Jack O'Quin
2002-09-20 10:20           ` Takashi Iwai
2002-09-20 12:40             ` Kai Vehmanen
2002-09-21  5:41               ` Jaroslav Kysela
2002-09-18 18:58       ` Fernando Pablo Lopez-Lezcano
2002-09-18 21:30       ` Chris Rankin
2002-09-18 21:44         ` Chris Rankin
2002-09-18 12:26     ` Ville Syrjälä

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hy99zr663.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=perex@perex.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.