I hate new DUB config format

Kagamin via Digitalmars-d digitalmars-d at puremagic.com
Fri Nov 27 00:54:31 PST 2015


On Friday, 27 November 2015 at 07:08:40 UTC, Sönke Ludwig wrote:
> Actually, no! Conditionals and loops are the only constructs - 
> switch is a possibility, but basically nothing else. There will 
> also never be variables, just constants. There is a definitive 
> limit, namely when it becomes impossible to reason about the 
> code in a generic way, without "executing" it, so in particular 
> anything that would make it touring complete is a no-go - no 
> recursion, no loop flow control statements, no goto. In fact, 
> there are no "statements" at all, these are all purely 
> declarative "directives".

I think conditions in msbuild are neat:
<PropertyGroup Condition="'$(StyleCopEnabled)' == ''">
   <StyleCopEnabled>true</StyleCopEnabled>
</PropertyGroup>
You can make any tag conditional by adding a Condition attribute 
to it without creating an additional nesting level. Though it has 
condition grammar.
It has variables too:
<CreateItem
   Include="@(Compile)"
   Exclude="
   %(Project.RootDir)%(Project.Directory)**\*Test.cs;
   %(Project.RootDir)%(Project.Directory)**\*.Designer.cs">
   <Output TaskParameter="Include" ItemName="StyleCopFiles"/>
</CreateItem>
This takes compiled files, removes unneeded ones and subsequently 
the resulting files (StyleCopFiles) are fed to a style analyzer 
tool.

> Sure, JSON *works*, but it becomes really unpleasant with more 
> complicated files, and the whole {"comment": "..."} approach is 
> nothing but an ugly and highly inconvenient hack, both when 
> writing and when reading it.

Also in the dependencies map keys are package names so 
{"comment": "..."} will be a dependency on a comment package.


More information about the Digitalmars-d mailing list