What are the worst parts of D?

Cliff via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 24 22:14:22 PDT 2014


> Actually you can't do this for D properly without enlisting the 
> help of the compiler. Scoped import is a very interesting 
> conditional dependency (it is realized only if the template is 
> instantiated).
>
> Also, lazy opening of imports is almost guaranteed to have a 
> huge good impact on build times.
>
> Your reply confirms my worst fear: you're looking at yet 
> another general build system, of which there are plenty of 
> carcasses rotting in the drought left and right of highway 101.
>

This is one of my biggest frustrations with existing "build 
systems" - which really are nothing more than glorified "make"s 
with some extra syntax and - for the really advanced ones - ways 
to help you correctly specify your makefiles by flagging errors 
or missing dependencies.

> The build system that will be successful for D will cooperate 
> with the compiler, which will give it fine-grained dependency 
> information. Haskell does the same with good results.
>
>
> Andrei

The compiler has a ton of precise information useful for build 
tools, IDEs and other kinds of analysis tools (to this day, it 
still bugs the crap out of me that Visual Studio has effectively 
*two* compilers, one for intellisense and one for the 
command-line and they do not share the same build environment or 
share the work they do!)  Build is more than just producing a 
binary - it incorporates validation through testing, packaging 
for distribution, deployment and even versioning.  I'd like to 
unlock the data in our tools and find ways to leverage it to 
improve automation and the whole developer workflow.  Those ideas 
and principles go beyond D and the compiler of course, but we do 
have a nice opportunity here because we can work closely with the 
compiler authors, rather than having to rely *entirely* on 
OS-level process introspection through e.g. detours (which is 
still valuable from a pure dependency discovery process of 
course.)

If we came out of this project with "tup-for-D" I'd consider that 
an abject failure.


More information about the Digitalmars-d mailing list