Reggae [was Building C++ modules]

Walter Bright newshound2 at digitalmars.com
Wed Aug 14 21:27:50 UTC 2019


On 8/13/2019 2:13 AM, Jacob Carlborg wrote:
> I suggest you look into incremental compilation, if you haven't done that 
> already.

Back in the 90's, when dinosaurs ruled the Earth, it was demanded of us why our 
linker (Optlink) didn't do incremental linking, as Microsoft just released 
incremental linking support and did a good job marketing it.

The answer, of course, was that Optlink would do a full link faster than MS-Link 
would do an incremental link.

The other (perennial) problem with incremental work was amply illustrated by 
MS-Link - it would produce erratically broken executables because of mistakes in 
the dependency management. Most people just kinda gave up and did full links 
just because they could get reliable builds that way.

Not correctly handling every single dependency means you'll get unrepeatable 
builds, which is a disaster with dev tools.

The solution I've always focused on was doing the full builds faster.

Although it is not implemented, the design of D is such that lexing, parsing, 
semantic analysis, and code generation can be done concurrently. Running the 
lex/parse in parallel across all the imports can be a nice win.


More information about the Digitalmars-d mailing list