After even more years of development the landscape of build systems has changed considerably, and so has the landscape of compilers. This version marks the start of B2 transitioning to a C++ implementation. Initially this means that the engine will be compiled as C++ source but that source is still the base C implementation. Over time it will transform to a C++ code base in both the engine and build system. Some changes in this start:
Requires C++ 11 to build engine.
Simplified build scripts to make it easier to maintain.
Building with C++ optimizations gives an immediate performance improvement.
Other changes in this release:
Add support for using prebuilt OpenSSL. -- Damian Jarek
Define the riscv architecture feature. -- Andreas Schwab
Add ARM64 as a valid architecture for MSVC. -- Marc Sweetgall
Set coverage flags, from coverage feature, for gcc and clang. -- Damian Jarek
Add s390x CPU and support in gcc/clang. -- Neale Ferguson
Support importing pkg-config packages. -- Dmitry Arkhipov
Support for leak sanitizer. -- Damian Jarek
Fix missing /manifest option in clang-win to fix admin elevation for exes
with "update" in the name. -- Peter Dimov
Add freertos to os feature. -- tee3
Default parallel jobs (-jX) to the available CPU threads. -- Rene Rivera
Simpler coverage feature. -- Hans Dembinski
Better stacks for sanitizers. -- James E. King III
WARNING: The default number of parallel jobs has changed in this release from "1" to the number of cores. There are circumstances when that default can be larger than the allocated cpu resources, for instance in some virtualized container installs.