Changes between Version 8 and Version 9 of AlternativeSelection


Ignore:
Timestamp:
Mar 26, 2007, 5:30:38 AM (19 years ago)
Author:
Dave Abrahams
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AlternativeSelection

    v8 v9  
    3737Boost.Build generates an error because the default value of the {{{<profiling>}}} feature is "{{{off}}}".  Boost.Build combines that default value with the explicit build request to get {{{<debug-symbols>on <profiling>off}}}, which does not match the 2nd alternative.
    3838
    39 == Example 2 ==
     39=== Example 2 ===
    4040
    4141I know at this point you're probably saying "that makes sense; you asked for something for which there's no alternative with matching requirements."  However, "no matching requirements" is currently ''not'' an error when there's only one alternative declared:
     
    5151The behavior in example 2 may seem counterintuitive, but it is widely regarded as desirable to succeed in building something, even if it doesn't exactly match what the user asked for, than to cause an error.  I'm not challenging that premise in this proposal.  In fact, the point of this proposal is to make the case where there are multiple alternatives more consistent with that principle.
    5252
    53 == Definition of "Best" ==
     53=== Definition of "Best" ===
    5454
    5555Indeed, the error message didn't say "there's no matching alternative;" it said there's "no ''best'' alternative."  Whether or not we accept this proposal turns on how we define "best."  I propose that in example 1, the fact that alternative 2 matches an ''explicitly specified'' build property should make it "better" than alternative 1.