<div dir="ltr"><div><div><div>Hello,<br></div>I agree with you Bill<br></div>Otherwise it's impossible to update plugins when the API will change.<br></div>Marc.<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">
2013/9/30 Bill Spitzak <span dir="ltr"><<a href="mailto:spitzak@gmail.com" target="_blank">spitzak@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 09/29/2013 02:56 PM, Kristian Høgsberg wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
No, we don't guarantee plugin API compatiblity from 1.2 to 1.3.  We<br>
may remove functions, structure fields, or change how existing<br>
functions work between 1.x versions.  There is no guarantee your<br>
plugin will work or even compile with 1.3 even if it works with 1.2,<br>
but it will work with every later 1.2.x release.  That's why I made<br>
the change to the version check macro.<br>
</blockquote>
<br></div>
Yes I understand that. My complaint is that while you *may* remove something between 1.2 and 1.3, you *probably won't*.<br>
<br>
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:<br>
<br>
#if WESTON_VERSION_AT_LEAST(1,2,5) || \<br>
    WESTON_VERSION_AT_LEAST(1,3,0) || \<br>
    WESTON_VERSION_AT_LEAST(1,4,0) || \<br>
    WESTON_VERSION_AT_LEAST(1,5,0) || \<br>
    WESTON_VERSION_AT_LEAST(1,6,0) || \<br>
    WESTON_VERSION_AT_LEAST(1,7,0) || \<br>
    WESTON_VERSION_AT_LEAST(1,8,0)<br>
...<br>
<br>
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.<br>

<br>
In my (and I suspect a lot of other people's) proposed version the programer just writes:<br>
<br>
#if WESTON_VERSION_AT_LEAST(1,2,5)<br>
<br>
If in fact the feature vanishes in 1.9.0 then they can write:<br>
<br>
#if WESTON_VERSION_AT_LEAST(1,2,5) && !WESTON_VERSION_AT_LEAST(1,9,<u></u>0)<br>
<br>
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:<br>
<br>
#if WESTON_VERSION_AT_LEAST(1,9,0)<br>
  ... new better api is used ...<br>
#elif WESTON_VERSION_AT_LEAST(1,2,5)<br>
  ... use the feature ...<br>
#else<br>
  ... fallback for very old version...<br>
#endif<br>
<br>
</blockquote></div><br></div>