[build2] build2 0.13.0 released

Matthew Krupcale mkrupcale at matthewkrupcale.com
Mon Jul 20 22:20:34 UTC 2020

On Mon, Jul 20, 2020 at 10:14 AM Boris Kolpackov
<boris at codesynthesis.com> wrote:
> We have released build2 toolchain version 0.13.0.

Congratulations on the latest release. Updates[1,2] are pending for
Fedora 32 and 31.

> The main focus of this release is build system support for project-specific configurations and
> ad hoc recipes.

Very nice, that is two of the strategic/foundational items on the
roadmap[3]. I think project-specific configurations might have been
one of the last things missing in my mind for a minimum viable
production build system. As you point out in the documentation[4],
it's not without drawbacks, but I think a lot of production codes have
at least some level of build-time configurability either for
dependencies or features, etc.

>   - Gentoo ebuild file: https://packages.gentoo.org/packages/dev-util/build2

Nice, looks like this was recently added. Glad to see more Linux
distros picking it up officially. Still missing Debian/Ubuntu, SUSE,
and others.

>   * Support for value subscripts.
>     A value subscript is only recognized in evaluation contexts (due to
>     ambiguity with wildcard patterns; consider: $x[123].txt) and should be
>     unseparated from the previous token. For example:
>     x = ($y[1])
>     x = (($f ? $y : $z)[1])
>     x = ($identity($y)[$z])
>   * Generation of a common pkg-config .pc file in addition to static/shared-
>     specific.

This should make it easier for other systems to use build2-installed
packages since they don't need to invoke pkg-config with the .shared
or .static suffix.

>   * Reworked tool importation support.
>     Specifically, now config.<tool> (like config.cli) is handled by the import
>     machinery (it is a shorter alias for config.import.<tool>.<tool>.exe that
>     we already had).
>     This also adds support for uniform tool metadata extraction that is
>     handled by the import machinery. As a result, a tool that follows the
>     "build2 way" can be imported with metadata by the buildfile and/or
>     corresponding module without any tool-specific code or brittleness
>     associated with parsing --version or similar outputs. See the cli
>     tool/module for an example of how this all fits together.

>   * Backtick (`) and bit-or (|) are reserved in eval context for future use.
>     Specifically, they are reserved for planned support of arithmetic eval
>     contexts and evaluation pipelines, respectively.

[1] https://bodhi.fedoraproject.org/updates/FEDORA-2020-e60dab0868
[2] https://bodhi.fedoraproject.org/updates/FEDORA-2020-fd1c5ae7fa
[3] https://github.com/build2/README/blob/master/roadmap.md
[4] https://build2.org/build2/doc/build2-build-system-manual.xhtml#proj-config

More information about the users mailing list