At 11:48 AM -0500 11/25/12, Jeremy Huddleston Sequoia wrote:
On Nov 25, 2012, at 8:54 AM, Bradley Giesbrecht <[email protected]> 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}

Not sure how the parsing works for the last example. For mythtv-core.25, I tested a bunch of compilers to find a few that worked. Eg:

# See https://trac.macports.org/ticket/35934
compiler.blacklist  llvm-gcc-4.2 macports-llvm-gcc-4.2 macports-clang-3.1 \
                    dragonegg-3.0 dragonegg-3.1 apple-gcc-4.2
compiler.fallback-append macports-clang-3.0

# Run time failures with XCode 4.4.x and 4.5.0
if {[vercmp $xcodeversion 4.4] >= 0} {
    compiler.blacklist-append clang
}

# TODO: This should be done by base
# https://trac.macports.org/ticket/32542
if {${configure.compiler} == "macports-clang-3.0"} {
    depends_build-append port:clang-3.0
    depends_skip_archcheck-append clang-3.0
}

Assuming that some future version of Apple clang starts working (say the "444", above), how would this be expressed?

Craig
_______________________________________________
macports-dev mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo/macports-dev

Reply via email to