On Tuesday, 20 June 2017 at 09:21:05 UTC, Walter Bright wrote:
On 6/20/2017 2:00 AM, ixid wrote:
How far away from a purely additive, pay for what we use
situation are we? It would seem like D should be BetterC out
of the box, without needing any switches and as you add and
use specific features and libraries it builds from that.
As long as the compiler supports separate compilation, it has
to emit certain information that may or may not be used by
other modules.
For example, the list of imported modules, which is used by the
startup code to determine the order of static construction. The
compiler cannot know which of those will have static
constructors and which won't.
How much of that could be made lazy?