On Mar 22, 2015, at 12:23 AM, Mihai Moldovan <[email protected]> wrote:
> On 22.03.2015 02:25 AM, Ryan Schmidt wrote:
>
>> The best way to clear the build.target (or any option) is to simply not give
>> a value, e.g. by writing just:
>>
>> build.target
>
> FWIW, I disagree here. Not giving it a value could, for the casual
> observer (not so much a macports dev, but a user not knowing internals)
> mean "default value" or "empty". This is ambiguous and we should avoid
> being ambiguous, especially for people not knowing MacPorts, to lower
> the entry threshold (and it *really* makes more sense to me to actually
> specify a value than rely on "guessing".)
You're ignoring the fact that Ryan's suggestion is the ubiquitous method of
clearing options. I cannot think of a single circumstance in which clearing an
option means "set to default".* Introducing an alternate notation for this is
making things *more* confusing because someone who sees "build.target" and
"build.target {}" will reasonably wonder whether there's any difference and
whether they should favor one over the other.
More importantly, they are not actually equivalent. "build.target" sets
build.target to an empty list. "build.target {}" sets build.target to a list
with an empty list as its only member. The code that handles build.target may
end up treating these equivalently, but you can't assume that this will be the
case for all options. Options that are sensitive to this difference will
require Ryan's method for clearing and your method for specifying a single
empty value, and that makes things even more confusing.
tl;dr: The correct way of clearing a list is Ryan's method, and you should use
it.
* Ignoring the use of empty braces to signify an empty script, as for phases
and variants.
vq
_______________________________________________
macports-dev mailing list
[email protected]
https://lists.macosforge.org/mailman/listinfo/macports-dev