Posted by: Anonymous Coward
on June 11, 2005 11:23 PM
The libtool/ld uses a version number system:
<tt>interface.implementation.age</tt>
the first two are pretty self explanatory, the age bit need examples to explain.
first of all, interface - age > 0 demonstrates backwards compatibility. So a lib like
<tt>3.0.2</tt>
supports interfaces
<tt>3, 2 and 1</tt>
but NOT interface zero. A lib like
<tt>&tab7.4.2</tt>
supports interfaces
<tt>7, 6 and 5</tt>
and so on<nobr> <wbr></nobr>...
the idea is that if you are using something libfoo 3.4.0 in your code a lot and see the version bump up to 3.5.0 you will know that only the implementation, not the interface, to the code has changed and can upgrade with some confidence. if, however, you saw the version go from 3.4.0 to 4.0.1 you know that the interface has changed and you should upgrade with caution. an interface change might be something major like changing a method signature or name, or it could be something minor like adding a new method (but all odds one stay the same) - in either case the version gives you certain hints.
That said, why don't other developers follow such schemes?
Shouldn't there be an RFC on version numbers too?
I would love to see, some coherence in version numbers at least for F/LOSS<nobr> <wbr></nobr>:)
To Whomsoever It May Concern
Posted by: Anonymous Coward on June 11, 2005 11:23 PM<tt>interface.implementation.age</tt>
the first two are pretty self explanatory, the age bit need examples to explain.
first of all, interface - age > 0 demonstrates backwards compatibility. So a lib like
<tt>3.0.2</tt>
supports interfaces
<tt>3, 2 and 1</tt>
but NOT interface zero. A lib like
<tt>&tab7.4.2</tt>
supports interfaces
<tt>7, 6 and 5</tt>
and so on<nobr> <wbr></nobr>...
the idea is that if you are using something libfoo 3.4.0 in your code a lot and see the version bump up to 3.5.0 you will know that only the implementation, not the interface, to the code has changed and can upgrade with some confidence. if, however, you saw the version go from 3.4.0 to 4.0.1 you know that the interface has changed and you should upgrade with caution. an interface change might be something major like changing a method signature or name, or it could be something minor like adding a new method (but all odds
one stay the same) - in either case the version gives you certain hints.
That said, why don't other developers follow such schemes?
Shouldn't there be an RFC on version numbers too?
I would love to see, some coherence in version numbers at least for F/LOSS<nobr> <wbr></nobr>:)
Regards,
#