lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


> On Jul 14, 2015, at 1:28 PM, Simon Cozens <simon@simon-cozens.org> wrote:
> 
> On 15/07/2015 00:41, Coda Highland wrote:
>> It's already THERE -- just not in 5.3, but in 5.2 where that change
>> actually happened:
>> 
>> http://www.lua.org/manual/5.2/manual.html#8.2
> 
> You're right, and I take back what I said about the documentation.
> 
> The only reason I noticed it in the 5.2 -> 5.3 change was because all
> the 5.2 interpreters in use were pretending to be 5.1.
> 
> (This, again, is why optional backward-compatibility flags break
> backwards compatibility.)
> 

The sub-text here, imho, is that using a “version number” to check for features is fraught with problems, in Lua and pretty much anything else. Windows for example, has an absurdly complex version number system of APIs because they have to “fake” version numbers for certain apps that make erroneous version number checks. Even the API that claims it gets the “real” version number actually gets a second-level faked one. And don’t get me started on apps that can’t even perform the correct version number compare logic.

What is really being checked is the presence/absence of a “feature” (in the abstract sense), and version numbers are being used to impute this indirectly. Since in Lua custom builds break the logic chain “version X.Y implies feature T” what’s really needed is a direct way to determine if a feature is present or not.

—Tim