summaryrefslogtreecommitdiff
path: root/RELEASE.txt
diff options
context:
space:
mode:
Diffstat (limited to 'RELEASE.txt')
-rw-r--r--RELEASE.txt25
1 files changed, 23 insertions, 2 deletions
diff --git a/RELEASE.txt b/RELEASE.txt
index 6c1c5f281..7a96cec03 100644
--- a/RELEASE.txt
+++ b/RELEASE.txt
@@ -17,6 +17,11 @@ NOTE: If you build with Python 3.10.0 and then rebuild with 3.10.1 (or higher),
see unexpected rebuilds. This is due to Python internals changing which changed
the signature of a Python Action Function.
+NOTE: If you use a dictionary to specify your CPPDEFINES, you may see an unexpected rebuild.
+ The insertion order of dictionary keys is now preserved when generating the command line.
+ Previously these were sorted alphabecially. This change to the command line,
+ while generating identical set of CPPDEFINES can change order and cause a rebuild.
+
NEW FUNCTIONALITY
-----------------
@@ -51,7 +56,12 @@ CHANGED/ENHANCED EXISTING FUNCTIONALITY
which controls whether to add the library if it is already in the $LIBS
list. This brings the library-adding functionality in Configure in line
with the regular Append, AppendUnique, Prepend and PrependUnique methods.
-
+- CPPDEFINES values added via a dictionary type are longer sorted by
+ key. This used to be required to maintain a consistent order of
+ commandline arguments between SCons runs, but meant macros were not
+ always emitted in the order entered. Sorting is no longer required
+ after Python interpreter improvements. There might be a one-time
+ rebuild of targets that involved such sorted keys in their actions.
FIXES
-----
@@ -90,7 +100,16 @@ FIXES
actual build would not see the file as modified. Leading to incorrect incremental builds.
Now configure checks now clear node info for non conftest nodes, so they will be re-evaluated for
the real taskmaster run when the build commences.
-
+- Inconsistent behavior of adding values to the CPPDEFINES construction
+ variable has been cleaned up (described in issue #4254). Now a tuple,
+ whether provided by itself or as a member of a list, is consistently
+ interpreted as a macro with replacement value. When adding a list,
+ individual members are added in sequence without interpretation.
+ A string value containing spaces is split if it is the initial value or
+ added, but not if it is given as a member of an added list. Detection
+ of duplicate macros now works for both valued and unvalued forms.
+- Handling of CPPDEFINES macros via Prepend and PrependUnique now works
+ (previously this was special-cased only for Append and AppendUnique).
IMPROVEMENTS
------------
@@ -139,6 +158,8 @@ DOCUMENTATION
- Additional explanations for MSVSProject and MSVSSolution builders.
- Updated MSVC documentation - adds "version added" annotations on recently
added construction variables and provides a version-mapping table.
+- Added further details in the documentation of Append and related methods
+ on the special handling of CPPDEFINES.
DEVELOPMENT
-----------