Dependency management in D

Cliff via Digitalmars-d digitalmars-d at puremagic.com
Fri Sep 19 12:07:16 PDT 2014


On Friday, 19 September 2014 at 18:56:20 UTC, ketmar via
Digitalmars-d wrote:
> On Fri, 19 Sep 2014 17:38:20 +0000
> Scott Wilson via Digitalmars-d <digitalmars-d at puremagic.com> 
> wrote:
>
>> That CTFE is used randomly everywhere?
> CTFE *can* be used alot. this is one of D killer features (our 
> regexp
> engine, for example, not only very fast, but regexps can be 
> compiled to
> native code thru D in *compile* *time* without external tools).
>
> all in all it heavily depends of your libraries, of course. if 
> you will
> do that with care ;-), it will work. but i just can't see any 
> reason to
> compilcate build process with .di generation. D compilers 
> usually are
> fast enough on decent boxes, and building can be done on 
> background
> anyway.

As someone with some expertise in this subject, I can say with
certainty that builds can almost never be fast enough.  If D
becomes successful - something we all desire I think - then it
will require large organizations to use it for large projects -
which means large code bases and long(er) compile times.  Build
labs seem to always be under pressure to churn out official bits
as quickly as possible for testing, deployment, analysis, etc.
More holistically, it's important that the bits produced in the
official process and the dev box process be as similar as
possible, if not entirely identical.  You can imagine such builds
feeding back into intellisense and analysis locally in the
developer's IDE, and these processes need to be fast and
(generally) lightweight.  Taken to the Nth degree, such work is
only ever done once for a change anywhere in the organization and
the results are available for subsequent steps immediately.

I don't know what all of the blockers to good incremental builds
under D are, but as D grows in influence, we can be sure people
will start to complain about build times, and they will start to
ask pointed questions about incrementality, reliability and
repeatability in builds.  Having a good handle on these issues
will allow us to at least plan and give good answers to people
who want to take it to the next level.


More information about the Digitalmars-d mailing list