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

Reply via email to