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

-----------

Reply via email to