On Friday, 29 August 2014 at 20:54:49 UTC, Idan Arye wrote:
I would now like to invoke the Zero One Infinity Rule(http://en.wikipedia.org/wiki/Zero_one_infinity_rule).

Supporting one format makes sense - DUB can simply use the set of functions and data structures provided by Phobos or by external libraries for using this format.

Supporting two formats will require two sets of functions and data structures, and to decide a point where the two code-paths will be joined to a single representation of the build configuration. According to the ZOI rule, you might as well take the extra step and support infinity formats!

This might make sense from a technical point of view, but do we want it? In the extreme case, we'd end up with a different format for each package, though more likely will be a distribution where most packages focus on one or two formats, but with a looooong tail...

This mechanism can also be used for splitting the build file - which can be useful if you want to have parts of it updated regularly by automatic tools, or to put only parts of the build configuration under source control. For this, different file names can be put in the "file" field even if they all use the same format, and "parser" can be omitted to read JSON files.

This is useful in any case, no matter how many formats we're going to support.

Reply via email to