1[[b2.history]] 2= History 3 4== Version 4.3.0 5 6There are many invidual fixes in this release. Many thanks for the 7contributions. Special thanks to Nikita for the many improvements to msvc 8and general plugging of support holes in all the compilers. 9 10There are some notable new features from Dmitry, Edward, and Nkita: 11 12* *New:* Add `force-include` feature to include headers before all sources. 13 -- _Nikita Kniazev_ 14* *New:* Partial support for Embarcadero C++ compilers based on clang-5. 15 -- _Edward Diener_ 16* *New:* Implement configurable installation prefixes that use features. 17 -- _Dmitry Arkhipov_ 18* *New:* Add `translate-path` feature. The translate-path feature allows for 19 custom path handling, with a provided rule, on a per target basis. This can 20 be used to support custom path syntax. 21 -- _René Ferdinand Rivera Morell_ 22* *New:* Add portable B2 system install option. This allows the b2 executable 23 and the build system files to live side by side. And hence to be (re)located 24 anywhere on disk. Soon to be used to supports Windows and other installers. 25 This removes the need for the `boost-build.jam` file for bootstrap. Making 26 it easier for users to get started. 27 -- _René Ferdinand Rivera Morell_ 28* Unbreak building from VS Preview command prompt. 29 -- _Marcel Raad_ 30* Fix compiler version check on macOS darwin toolset. 31 -- _Bo Anderson_ 32* Remove pch target naming restriction on GCC. 33 -- _Nikita Kniazev_ 34* Select appropriate QNX target platform. 35 -- _Alexander Karzhenkov_ 36* Various space & performance improvements to the b2 engine build on Windows. 37 -- _Nikita Kniazev_ 38* Fill extra and pedantic warning options for every compiler. 39 -- _Nikita Kniazev_ 40* Include OS error reason for engine IO failures. 41 -- _Nikita Kniazev_ 42* Use /Zc:inline and /Zc:throwingNew flags for better language conformance. 43 -- _Nikita Kniazev_ 44* Add cxxstd value 20 for C++20. 45 -- _Andrey Semashev_ 46* Parallel B2 engine compilation on MSVC. 47 -- _Nikita Kniazev_ 48* Updated instruction-set feature with new x86 targets. 49 -- _Andrey Semashev_ 50* Pass /nologo to rc on Windows compilers. 51 -- _Nikita Kniazev_ 52* Fixed negation in conditional properties. 53 -- _Nikita Kniazev_ 54* Remove leftover manifest generation early exiting. 55 -- _Nikita Kniazev_ 56* Fix timestamp delta calculation. 57 -- _Nikita Kniazev_ 58* Add missing assembler options to clang-win.jam, to enable Context to build. 59 -- _Peter Dimov_ 60* Updated scarce `:chars` documentation with `:BS` example. 61 -- _Nikita Kniazev_ 62* Fix link statically against boost-python on linux. 63 -- _Joris Carrier_ 64* Ongoing cleanup of engine build warnings. 65 -- _René Ferdinand Rivera Morell_ 66* Allow self-testing of toolsets that use response files. 67 -- _René Ferdinand Rivera Morell_ 68* Port `Jambase` to native C++. Hence removing one of the oldest parts of the 69 original Jam bootstrap process. 70 -- _René Ferdinand Rivera Morell_ 71 72== Version 4.2.0 73 74This release is predominantly minor fixes and cleanup of the engine. In 75particular the bootstrap/build process now clearly communicates C++11 76requirement. 77 78* Add `saxonhe_dir` action. 79 -- _Richard Hodges_ 80* Add CI testing for historical Boost versions on Windows MSVC. 81 -- _René Ferdinand Rivera Morell_ 82* Check for C++11 support when building engine. Including an informative 83 error message as to that fact. 84 -- _René Ferdinand Rivera Morell_ 85* Update Jam grammar parser with latest `bison` version. 86 -- _René Ferdinand Rivera Morell_ 87* Allow root `b2 b2` engine build to work even if `bison` grammar generator 88 is not available. 89 -- _René Ferdinand Rivera Morell_ 90* Warning free engine build on at least Windows, macOS, and Linux. 91 -- _René Ferdinand Rivera Morell_ 92* Sanitize Windows engine build to consistently use ANSI Win32 API. 93 -- _Mateusz Loskot_ 94* Fix b2 engine not exiting, with error, early when it detects a Jam language 95 error. 96 -- _Mateusz Loskot_ 97* Print help for local modules, i.e. current dir. 98 -- _Thomas Brown_ 99 100== Version 4.1.0 101 102Many small bug fixes in this release. But there are some new features also. 103There's now an `lto` feature to specify the use of LTO, and what kind. The 104existing `stdlib` feature now has real values and corresponding options 105for some toolsets. But most importantly there's new documentation for all 106the features. 107 108Thank to all the users that contributed to this release with these changes: 109 110* Support for VS2019 for intel-vin 19.0. -- _Edward Diener_ 111* Fix compiler warnings about `-std=gnu11` when building `b2` on Cygwin. -- 112 _Andrey Semashev_ 113* Add example of creating multiple PCHs for individual headers. 114 -- _René Ferdinand Rivera Morell_ 115* Add QNX threading flags for GCC toolset. -- _Aurelien Chartier_ 116* Fix version option for IBM and Sun compilers when building b2 engine 117 -- _Juan Alday_ 118* Rename `strings.h` to `jam_strings.h` in `b2` engine to avoid clash with 119 POSIX `strings.h` header. -- _Andrey Semashev_ 120* Add options for `cxxstd` feature for IBM compiler. -- _Edward Diener_ 121* Many fixes to intel-win toolset. -- _Edwad Diener_ 122* Add z15 instruction set for gcc based toolsets. -- _Neale Ferguson_ 123* Improve using MSVC from a Cygwin shell. -- _Michael Haubenwallner_ 124* Add LTO feature and corresponding support for gcc and clang toolsets. 125 -- _Dmitry Arkhipov_ 126* Fix errors when a source doesn't have a type. -- _Peter Dimov_ 127* Add documentation for features. -- _Dmitry Arkhipov_ 128* Enhance `stdlib` feature, and corresponding documentation, for clang, gcc, 129 and sun toolsets. -- _Dmitry Arkhipov_ 130* Install rule now makes explicit only the immediate targets it creates. 131 -- _Dmitry Arkhipov_ 132* Add armasm (32 and 64) support for msvc toolset. -- _Michał Janiszewski_ 133* Fix errors with custom un-versioned gcc toolset specifications. 134 -- _Peter Dimov_ 135* Allow arflags override in gcc toolset specifications. -- _hyc_ 136* Fix founds libs not making it to the clang-win link command line. 137 -- _Peter Dimov_ 138* Updated intel-win toolset to support for Intel C++ 19.1. 139 -- _Edward Diener_ 140* Detect difference between MIPS32 and MIPS64 for OS in b2 engine. 141 -- _YunQiang Su_ 142 143== Version 4.0.1 144 145This patch release fixes a minor issue when trying to configure toolsets that 146override the toolset version with a non-version tag. Currently this is only 147known to be a problem if you: (a) configure a toolset version to something 148like "`tot`" (b) in Boost 1.72.0 when it creates cmake install artifacts. 149Fix for this was provided Peter Dimov. 150 151== Version 4.0.0 152 153After even more years of development the landscape of build systems has changed 154considerably, and so has the landscape of compilers. This version marks the 155start of B2 transitioning to a {CPP} implementation. Initially this means that 156the engine will be compiled as C++ source but that source is still the base 157C implementation. Over time it will transform to a {CPP} code base in both the 158engine and build system. Some changes in this start: 159 160* Requires {CPP} 11 to build engine. 161* Simplified build scripts to make it easier to maintain. 162* Building with {CPP} optimizations gives an immediate performance improvement. 163 164Other changes in this release: 165 166* Add support for using prebuilt OpenSSL. -- _Damian Jarek_ 167* Define the riscv architecture feature. -- _Andreas Schwab_ 168* Add ARM64 as a valid architecture for MSVC. -- _Marc Sweetgall_ 169* Set coverage flags, from coverage feature, for gcc and clang. -- _Damian Jarek_ 170* Add s390x CPU and support in gcc/clang. -- _Neale Ferguson_ 171* Support importing pkg-config packages. -- _Dmitry Arkhipov_ 172* Support for leak sanitizer. -- _Damian Jarek_ 173* Fix missing `/manifest` option in clang-win to fix admin elevation for exes 174 with "update" in the name. -- _Peter Dimov_ 175* Add `freertos` to `os` feature. -- _Thomas Brown_ 176* Default parallel jobs (`-jX`) to the available CPU threads. -- _René Ferdinand Rivera Morell_ 177* Simpler coverage feature. -- _Hans Dembinski_ 178* Better stacks for sanitizers. -- _James E. King III_ 179 180WARNING: The default number of parallel jobs has changed in this release from 181"1" to the number of cores. There are circumstances when that default can be 182larger than the allocated cpu resources, for instance in some virtualized 183container installs. 184