• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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