On 2011-02-21 9:35 AM, cryptopp wrote:
> #11: include a field for a distribution- or variant- specific version number > ------------------------+---------------------------------------------------
> Reporter:  zooko        |     Owner:
>      Type:  enhancement  |    Status:  new
> Priority:  major        |   Version:
> Keywords:               |
> ------------------------+---------------------------------------------------
>
> Comment(by ohnobinki):
>
>   Why should cryptopp clients need to know what variant of
>   cryptopp is being talked to? Regardless of whether or not
>   a variant is being talked to, the API/ABI/semantics
>   should stay the same, shouldn't they?
>
>   Adding such a field will wrongly encourage client
>   libraries/programs to do different things with cryptopp
>   based on the variant string. If there are reasons why
>   client libraries/programs would access cryptopp in
>   different ways, they should test for different cases on a
>   feature-by-feature basis instead of on a fragile variant
>   string.


The way Microsoft handles this in com works:

The calling code requests a particular library GUID (Zooko's
triangle is more or less applied to identify GUIDs).  If it
gets an entry point to the library, it gets an entry point to
the library that will act like the library identified by that
GUID.

The calling code is encouraged to try multiple GUIDS,
typically trying the most recent GUID it knows about, and
falling back to earlier GUIDS if that fails and adjust its
behavior according to the GUID it is using.  The called code
is encouraged to provide multiple GUIDs, to provide behavior
that mimics older behavior if requested to provide an entry
point for an older GUID.

This encourages implementers to implement new behavior as new
entry points, leaving old entry points bug for bug
compatible.

This is the only full and complete solution to version hell.
Every other solution is half assed, and will fail in one way,
or fail in another way.

--
You received this message because you are subscribed to the "Crypto++ Users" 
Google Group.
To unsubscribe, send an email to [email protected].
More information about Crypto++ and this group is available at 
http://www.cryptopp.com.

Reply via email to