compiler.{white,black}list usage, especially in cxx11-1.1 PG context

Chris Jones jonesc at hep.phy.cam.ac.uk
Tue Apr 16 09:25:03 UTC 2019


> 
> compiler.whitelist sadly is a *huge* misnomer and tricks people into believing
> that the listed compilers will be used if they are already available/installed.

I have personally never thought that, and nor do I think it was ever the 
intention. To me the whitelist has always been read as 'use these 
compilers, starting with the first in the list, picking the first which 
is not excluded for other reasons'.

> It does not mean that. compiler.whitelist should really have been called
> compiler.force, because that what it does.


> 
> Note how base never checks if a port is installed. It won't take "the first
> available compiler", but the first one that is not blacklisted and for which
> either a port or a binary exists .

Nor, I think, do we really want it to. I want the exact compiler to be 
used to be predictable based only on the logic in the port, and in base, 
and not on what the user just happens to have installed. I guess we 
differ on this point.

I am not saying we don't need to overhaul a bit the way we select 
compilers, just I am not sure the above is the biggest issue. For 
instance, we need a better way of selecting the right compiler when a 
port needs more than c++11 (c++14, c+=17). Currently there is no way to 
do this than to fine tune the compiler selection by hand.

Chris


More information about the macports-dev mailing list