Blacklisting compiler versions or build numbers

Jeremy Huddleston Sequoia jeremyhu at apple.com
Sun Nov 25 08:48:23 PST 2012


On Nov 25, 2012, at 8:54 AM, Bradley Giesbrecht <pixilla at macports.org> wrote:

> On Nov 24, 2012, at 8:10 PM, Ryan Schmidt wrote:
> 
>> One idea that occurs to me is modifying the compiler.blacklist syntax. For example:
>> 
>> "compiler.blacklist clang" would blacklist all versions of clang, as it does now.
>> 
>> "compiler.blacklist clang<318.0.61" would blacklist clang builds less than 318.0.61 (cairo might use this).
>> 
>> "compiler.blacklist clang>=421.11.66" would blacklist clang builds greater than or equal to 421.11.66 (mpich might use this).
>> 
>> "compiler.blacklist 421.11.66<=clang<444" would blacklist clang builds greater than or equal to 421.11.66 and less than 444 (mpich might use this, if whatever clang bug it hit is fixed in some hypothetical future clang build 444).
> 
> 
> Would the last example be easier to write, read, debug and document as key/value pairs over two line?
> compiler.blacklist clang<444
> compiler.blacklist clang>=421.11.66

Unfortunately that won't work as the first would be overwritten by the second ... even with the use of -append, the default logic of the blacklist is "or" for each element.  I'd suggest that if the element is a list, then it is examined for versions.  If it is a literal, then the entire family is blacklisted.  I like something like this:

# All clang versions blacklisted
compiler.blacklist-append clang

# clang < 308 blacklisted:
compiler.blacklist-append {clang < 308}

# clang >= 421.11.66 and < 444 blacklisted
compiler.blacklist-append {clang >= 421.11.16 < 444}




More information about the macports-dev mailing list