[PATCH] version.h: Add version check macro
Marc Chalain
marc.chalain at gmail.com
Wed Oct 2 01:02:45 PDT 2013
Hello,
I agree with you Bill
Otherwise it's impossible to update plugins when the API will change.
Marc.
2013/9/30 Bill Spitzak <spitzak at gmail.com>
> On 09/29/2013 02:56 PM, Kristian Høgsberg wrote:
>
> No, we don't guarantee plugin API compatiblity from 1.2 to 1.3. We
>> may remove functions, structure fields, or change how existing
>> functions work between 1.x versions. There is no guarantee your
>> plugin will work or even compile with 1.3 even if it works with 1.2,
>> but it will work with every later 1.2.x release. That's why I made
>> the change to the version check macro.
>>
>
> Yes I understand that. My complaint is that while you *may* remove
> something between 1.2 and 1.3, you *probably won't*.
>
> Therefore somebody using a feature that appeared in 1.2.5 and never
> disappears, and is now trying to compile for 1.8.3, has to write:
>
> #if WESTON_VERSION_AT_LEAST(1,2,5) || \
> WESTON_VERSION_AT_LEAST(1,3,0) || \
> WESTON_VERSION_AT_LEAST(1,4,0) || \
> WESTON_VERSION_AT_LEAST(1,5,0) || \
> WESTON_VERSION_AT_LEAST(1,6,0) || \
> WESTON_VERSION_AT_LEAST(1,7,0) || \
> WESTON_VERSION_AT_LEAST(1,8,0)
> ...
>
> And when 1.9.0 comes out they have to add another statement to the above!
> The only "advantage" is that if the feature happens to vanish in 1.9.0 then
> they don't have to edit the source. But in reality the reason it would
> vanish is because 1.9.0 is providing a new and better way to get the
> desired function, so they will want to edit the source anyway to add this.
>
> In my (and I suspect a lot of other people's) proposed version the
> programer just writes:
>
> #if WESTON_VERSION_AT_LEAST(1,2,5)
>
> If in fact the feature vanishes in 1.9.0 then they can write:
>
> #if WESTON_VERSION_AT_LEAST(1,2,5) && !WESTON_VERSION_AT_LEAST(1,9,**0)
>
> In the very likely case that 1.9.0 actually wants to use some new feature
> and not the fallback for the really old version:
>
> #if WESTON_VERSION_AT_LEAST(1,9,0)
> ... new better api is used ...
> #elif WESTON_VERSION_AT_LEAST(1,2,5)
> ... use the feature ...
> #else
> ... fallback for very old version...
> #endif
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/wayland-devel/attachments/20131002/95adb3d0/attachment.html>
More information about the wayland-devel
mailing list