[coyotos-dev] IDL compatibility: the versioning nightmare

Christopher Nelson nadiasvertex at gmail.com
Tue Jul 10 09:04:20 EDT 2007


>
>   1. Everything that can be correctly expressed with versioning
>      can equally well be expressed with inheritance, so explicit
>      versioning mechanism is technically required.
>
>   2. Versioning is a nightmare. Forcing it to be expressed through
>      inheritance helps make the nightmare more explicit. I, at least,
>      believe that software nightmares should not be kept in closets.
>
>
Out of curiosity, do you consider the approach of having one dispatch list
per version per interface to code heavy and/or to slow?

In other words, say you had:

interface A:0
{
   mymethod1();
}

interface A:1
{
  mymethod2();
}

Code would be required to explicitly state which version of the interface it
uses.  Later versions automatically get all previous methods, unless those
methods are declared as obsolete in newer versions of the interface.

Downwards compatibility is maintained because the dispatch
list/table/function only changes in the latest version of the interface.
There might also be syntactic sugar allowing you to specify in source that
you want the latest version of the interface.  This wouldn't have any effect
on binary compatibility with already-compiled apps, though.

-={C}=-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.coyotos.org/pipermail/coyotos-dev/attachments/20070710/490f3531/attachment.html 


More information about the coyotos-dev mailing list