I hate new DUB config format

Chris Wright via Digitalmars-d digitalmars-d at puremagic.com
Tue Dec 1 09:24:08 PST 2015


On Tue, 01 Dec 2015 12:22:32 +0000, Ola Fosheim Grøstad wrote:

> On Tuesday, 1 December 2015 at 12:07:51 UTC, Russel Winder wrote:
>> I think you are meaning Bazel here. http://bazel.io/
>>
>> I haven't had chance to play with it as yet, and it changes massively
>> every day – though I suspect it is the internal of the satisfaction
>> engine that change not the specification notation (which looks a bit
>> like a Python/SCons/Waf type thing). I will be playing with it over the
>> next few weeks, so more news later.
> 
> 
> That's interesting, I didn't know they were going to make it publicly
> available. The FAQ says it supports Java, Objective-C and C++ out of the
> box. So I guess that means there is infrastructure for adding other
> languages too.

So they open sourced Blaze. Interesting, but not very useful.

Bazel, like Blaze, wants to keep a very granular build unit with explicit 
dependencies. It aims to keep very little per-language logic in the build 
system. The tradeoff is that humans have to supply it all.

DUB aims to have very tight integration with D, and build granularity 
isn't a large goal. This means it's nearly useless for building any other 
language, and it would probably die if you tried to build a project with 
a million lines of code with it. But on the other hand, I can write a 
build file that just contains the project name and what dependencies it 
has and I'm off to the races.

Amazon internally has a build system called Brazil. (My information is 
probably four years out of date now.) It's basically a multilanguage 
Maven, hampered by an ugly web interface and a concept of "version sets" 
-- which is essentially the same as dub.selections.json, but you have to 
maintain it manually. That model, minus the web interface and manually 
curating version selections, would work much better with most small to 
medium projects in the wild. Add a source distribution option (to avoid 
having to build N versions of the same library; we're not all on JIT) and 
Bob's your uncle.


More information about the Digitalmars-d mailing list