[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