[build2-announce] build2 toolchain 0.5.0 released

Boris Kolpackov boris at codesynthesis.com
Thu May 4 12:13:11 UTC 2017


We have released build2 toolchain 0.5.0. It includes a large number of
major new features primarily in the build system. Note also that this is
still an alpha release with interfaces subject to change. It has been
tested on Windows, Linux, Mac OS, and FreeBSD with GCC, Clang (both
vanilla and Apple's), MinGW GCC, and MSVC (both 14 and 15).

The corresponding NEWS file entries are included below. A more detailed
discussion of the major new features is available in the release notes:


Note that this release is backwards-incompatible with 0.4.0 and cannot be
upgraded to with the package manager.

Download and build instructions:


Download directory:


SHA256 checksums:

85e83c4fbc63c69c6a3e3f3b14a8eacc81c02eb565c6f48df423fc5cc50eb980 *build2-toolchain-0.5.0.tar.xz
e31f744784ee5d72978cffdd9f1cdc901c5974a926501817f442c5fcbe41cacc *build2-toolchain-0.5.0.tar.gz
2dd0dfc8b808d5d97827321200584e33a94d4cc47fb63a928aed1fb3510dfb91 *build2-baseutils-0.5.0-x86_64-windows.zip
7af967ded300e83a7f11c57123bbabceeedd024d3fdf230e48af5a7a50b93379 *build2-baseutils-0.5.0-i686-windows.zip
bcf91d078802e57f3c64d2cecb9ea8d0065760d56a48e18bd078aa6521710490 *build2-mingw-0.5.0-x86_64-windows.tar.xz
e4681fa3bf8dfbb03deba33a18d442217958e62dbe8ff6be353939fbbcbb646c *build2-mingw-0.5.0-i686-windows.tar.xz

Note that the cppget.org repository that hosts the individual packages is
signed. Its certificate details and the SHA256 fingerprint are:

CN=cppget.org/O=Code Synthesis/admin at cppget.org

NEWS file entries:

build2 version 0.5.0

  * Parallel build system execution, including header dependency extraction
    and compilation.

  * Support for Testscript, a shell-like language for portable and parallel
    execution of tests. See the Testscript manual for details.

  * Support for name generation with wildcard patterns. For example:

    exe{hello}: cxx{*}


    ./: {*/ -build/}

    See the build system manual for details.

  * New module, version, automates project version management. See the build
    system manual for details.

  * Support for VC15, C++ standard selection in VC14U3 and up.

  * New meta-operation, create, allows the creation and configuration of an
    amalgamation project. See b(1) for details.

  * Alternative, shell-friendly command line buildspec and variable assignment
    syntax. For example:

    b test: foo/ bar/
    b config.import.libhello = ../libhello/

    See b(1) for details.

  * Automatic loading of directory buildfiles, implied directory buildfiles.
    Now instead of explicitly writing:

    d = foo/ bar/
    ./: $d doc{README}
    include $d

    We can just write:

    ./: foo/ bar/ doc{README}

    And if our buildfile simply builds all the subdirectories:

    ./: */

    Then it can be omitted altogether.

  * Support of the PATH-based search as a fallback import mechanism for exe{}

  * Support for the 'latest' value in the cxx.std variable which can be used
    to request the latest C++ standard available in the compiler.

  * Ternary and logical operators support in eval contexts.

  * Initial support for build system functions. See build2/function*.?xx for
    early details.

  * Assert directive. The grammar is as follows:

    assert <expression> [<description>]
    assert! <expression> [<description>]

    The expression must evaluate to 'true' or 'false', just like in if-else.

bpkg version 0.5.0

  * Multiple usability fixes and improvements.

  * The test suite has been rewritten in Testscript and can now be used on all
    the supported platforms.

brep version 0.5.0
  * Initial support for the bbot controller functionality. Currently packages
    are built, notification emails are send, and logs can be viewed. However,
    no build information is currently displayed on package version pages.

More information about the announce mailing list