[[b2.history]] = History == Version 4.2.0 This release is predominantly minor fixes and cleanup of the engine. In particular the bootstrap/build process now clearly communicates C++11 requirement. * Add `saxonhe_dir` action. -- _Richard Hodges_ * Add CI testing for historical Boost versions on Windows MSVC. -- _Rene Rivera_ * Check for C++11 support when building engine. Including an informative error message as to that fact. -- _Rene Rivera_ * Update Jam grammar parser with latest `bison` version. -- _Rene Rivera_ * Allow root `b2 b2` engine build to work even if `bison` grammar generator is not available. -- _Rene Rivera_ * Warning free engine build on at least Windows, macOS, and Linux. -- _Rene Rivera_ * Sanitize Windows engine build to consistently use ANSI Win32 API. -- _Mateusz Loskot_ * Fix b2 engine not exiting, with error, early when it detects a Jam language error. -- _Mateusz Loskot_ * Print help for local modules, i.e. current dir. -- _Thomas Brown_ == Version 4.1.0 Many small bug fixes in this release. But there are some new features also. There's now an `lto` feature to specify the use of LTO, and what kind. The existing `stdlib` feature now has real values and corresponding options for some toolsets. But most importantly there's new documentation for all the features. Thank to all the users that contributed to this release with these changes: * Support for VS2019 for intel-vin 19.0. -- _Edward Diener_ * Fix compiler warnings about `-std=gnu11` when building `b2` on Cygwin. -- _Andrey Semashev_ * Add example of creating multiple PCHs for individual headers. -- _Rene Rivera_ * Add QNX threading flags for GCC toolset. -- _Aurelien Chartier_ * Fix version option for IBM and Sun compilers when building b2 engine -- _Juan Alday_ * Rename `strings.h` to `jam_strings.h` in `b2` engine to avoid clash with POSIX `strings.h` header. -- _Andrey Semashev_ * Add options for `cxxstd` feature for IBM compiler. -- _Edward Diener_ * Many fixes to intel-win toolset. -- _Edwad Diener_ * Add z15 instruction set for gcc based toolsets. -- _Neale Ferguson_ * Improve using MSVC from a Cygwin shell. -- _Michael Haubenwallner_ * Add LTO feature and corresponding support for gcc and clang toolsets. -- _Dmitry Arkhipov_ * Fix errors when a source doesn't have a type. -- _Peter Dimov_ * Add documentation for features. -- _Dmitry Arkhipov_ * Enhance `stdlib` feature, and corresponding documentation, for clang, gcc, and sun toolsets. -- _Dmitry Arkhipov_ * Install rule now makes explicit only the immediate targets it creates. -- _Dmitry Arkhipov_ * Add armasm (32 and 64) support for msvc toolset. -- _MichaƂ Janiszewski_ * Fix errors with custom un-versioned gcc toolset specifications. -- _Peter Dimov_ * Allow arflags override in gcc toolset specifications. -- _hyc_ * Fix founds libs not making it to the clang-win link command line. -- _Peter Dimov_ * Updated intel-win toolset to support for Intel C++ 19.1. -- _Edward Diener_ * Detect difference between MIPS32 and MIPS64 for OS in b2 engine. -- _YunQiang Su_ == Version 4.0.1 This patch release fixes a minor issue when trying to configure toolsets that override the toolset version with a non-version tag. Currently this is only known to be a problem if you: (a) configure a toolset version to something like "`tot`" (b) in Boost 1.72.0 when it creates cmake install artifacts. Fix for this was provided Peter Dimov. == Version 4.0.0 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 {CPP} 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 {CPP} code base in both the engine and build system. Some changes in this start: * Requires {CPP} 11 to build engine. * Simplified build scripts to make it easier to maintain. * Building with {CPP} 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. -- _Thomas Brown_ * 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.