Important Project Announcements

Posted on 01 Apr 2017 by Boris Kolpackov with comments on r/cpp/

We have several very important announcements about exciting new developments in the build2 project... ok, it's April 1 and you know this is a hoax. But here is the kick: one of these announcements actually has some truth to it. Can you guess which one?

Meta-Meta-Build

We have realized that a native build system that actually performs the build itself consistently and uniformly across all platforms and compilers is too boring. So instead we are going to generate CMakeList.txt from our buildfile. Because surely a meta-meta-build system is better than just a meta-build system.

Switching to Python

We are switching from C++14 to Python as the implementation language. There are several reasons for this. Firstly, we feel it is unfair not to impose an additional burden of installing and maintaining a suitable version of Python on users of inferior platforms, such as Mac OS, Windows, etc. After all, there should be a penalty for such a misguided choice.

Secondly, we have now realized that the majority of C++ developers would rather code in Python than C++. This is an important consideration going forward if we want to attract external contributions.

Plus developers of other languages like Go and Rust (who implemented their build toolchains in their respective languages) clearly don't know what they are doing so this is a good indication of what not to do.

Build OS

Because of the switch to Python, we feel that we must provide an easy way of getting all the necessary bits and pieces. As a result, we have started work on a special-purpose Linux distribution, called Build OS, that is optimized for the build2 toolchain. Unfortunately, this means that in order to use build2 you will not only have to forgo your favorite IDE and use the command line, but also your preferred operating system and use Build OS.