On Thursday, 21 December 2017 at 13:30:32 UTC, David Nadlinger
There would probably have to be some sort of compatibility flag
to avoid breaking all libraries on systems where symbols are
visible externally by default (Linux, ...).
Agree, although this currently really is a bad default. Having
all symbols visible by default can lead to really long shared
library load times especially with template heavy code. I've seen
reports of shared libaries using boost in c++ having load times
of 60 seconds and above due to the number of visible symbols.
Ideally we should end up with visibility hidden being the default
and only making symbols visible which use "export", because that
is what it was designed for in the first place.