On Thursday, 23 August 2018 at 07:37:07 UTC, Iain Buclaw wrote:
Symptom: The compiler can't discard unused symbols at compile
time, and so it will spend a lot of time pointlessly optimising
code.
Problem: D has no notion of symbol visibility.
Possible Solution: Make all globals hidden by default unless
'export'.
Side effects: Everyone will be spending weeks to months fixing
their libraries in order to only mark what should be visible
outside the current compilation unit as 'export'.
Benefits: Faster compile times, as in, in the most extreme
example I've built one project on github with gdc -O2 and build
time went from 120 seconds to just 3!
Iain.
You can probably solve it like haskell does: Export all symbols
by default.
So this module exports everything:
-----------
module MyModule where
-- My code goes here
-----------
this one not:
-----------
module MyModule (symbol1, symbol2) where
-- My code goes here
-----------