Re: Project options and other format enhancements (and dropping "variants")



On Thu, 2017-09-07 at 17:53 -0400, Tristan Van Berkom wrote:
Hi all,

So it's pretty clear by now that we're going to need a solution for
parallel orthogonal project options and that variants by itself is not
a solution for this, or, that other variant-like constraint based
solutions which cater to parallel configurations are just overly
complex (both to implement and probably also to understand as a
format).
[...]

Just stopping off here for a little progress report.

The major related changes which have landed this week include:

  o Removal of variants
  o Support for declaring project options, with 5 option types
    o Boolean
    o Enumeration
    o Flags
    o Arch (convenience, derived from Enumeration)
    o Element Mask (convenience, derived from Flags)
  o Support for conditional expressions using the (?) directive
  o Support for assertions using the (!) directive
  o Documentation overhaul

Note that 'arches' conditionals have not been removed yet, I have a
branch which removes them and we're just migrating some projects to use
the new conditionals before removing 'arches' completely.


For a taste of what this looks like, see the documentation which
includes some snippets, at http://buildstream.gitlab.io/buildstream/

Option declarations (and examples of expressions using the various
option types) are documented here:

  http://buildstream.gitlab.io/buildstream/projectconf.html#project-options

Conditional (?) and assertion (!) directives are documented here:

  http://buildstream.gitlab.io/buildstream/formatintro.html#format-directives

The remaining bits which need to be implemented in the context of this
proposal are the declarative array composition directives (<) (>) and
(=).

Cheers,
    -Tristan



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]