aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS76
1 files changed, 76 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..38845e0
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,76 @@
+Version 0.3.0
+
+ * Support for High Fidelity Builds (HFB).
+
+ The C++ compiler and link rules now detect when the compiler, options, or
+ input file set have changed and trigger the update of the target. Some
+ examples of the events that would now trigger an automatic update:
+
+ * Compiler change (e.g., g++ to clang++), upgrade, or reconfiguration.
+ * Change of compile/link options (e.g., -O2 to -O3).
+ * Rename of a source file name (e.g., foo.cpp to foo.cxx).
+ * Removal of a file from a library/executable.
+
+ * Support for the Intel C++ compiler on Linux.
+
+ * Command line options, variables, and buildspec can now be specified in any
+ order. This is especially useful if you want to re-run the previous
+ command with -v or add a forgotten config variable:
+
+ b test -v
+ b configure config.cxx=clang++
+
+ * Implement C++ compiler detection. Currently recognized compilers and their
+ ids (in the <type>[-<variant>] form):
+
+ gcc GCC
+ clang Vanilla Clang
+ clang-apple Apple Clang (and the g++ "alias")
+ icc Intel icpc
+ msvc Microsoft cl.exe
+
+ The compiler id, version, and other information is available via the
+ following build system variables:
+
+ cxx.id
+ cxx.id.{type,variant}
+ cxx.version
+ cxx.version.{major,minor,patch,build}
+ cxx.signature
+ cxx.checksum
+ cxx.target
+ cxx.target.{cpu,vendor,system,version,class}
+
+ * Implement ar/ranlib detection. The following information is available
+ via the build system variables:
+
+ bin.ar.signature
+ bin.ar.checksum
+ bin.ranlib.signature
+ bin.ranlib.checksum
+
+ * On update for install the C++ link rule no longer uses the -rpath
+ mechanism for finding prerequisite libraries.
+
+ * Set build.host, build.host.{cpu,vendor,system,version,class} build system
+ variables to the host triplet. By default it is set to the compiler target
+ build2 was built with but a more precise value can be obtained with the
+ --config-guess option.
+
+ * Extracted header dependencies (-M*) are now cached in the auxiliary
+ dependency (.d) files rather than being re-extracted on every run. This
+ speeds up the up-to-date check significantly.
+
+ * Revert back to only cleaning targets in subdirectories.
+
+ Cleaning everything as long as it is in the same strong amalgamation had
+ some undesirable side effects. For example, in bpkg, upgrading a package
+ (which requires clean/reconfigure) led to all its prerequisite being
+ cleaned as well and then rebuilt. That was very surprising, to say the
+ least.
+
+ * Allow escaping in double-quoted strings.
+
+Version 0.2.0
+
+ * First public release.