Skip to content

Commit a42bc77

Browse files
committed
Merge branch 'master' into jbrill-msvc-detect
Manually resolve conflicts: CHANGES.txt RELEASE.txt SCons/Tool/MSCommon/vc.py
2 parents 7859a40 + 73dcba0 commit a42bc77

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1389
-970
lines changed

CHANGES.txt

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,10 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
8787
new msvc installations, internal runtime caches are cleared and the installed vcs
8888
list is reconstructed.
8989

90+
From Thaddeus Crews:
91+
- Implemented SCons.Util.sctyping as a safe means of hinting complex types. Currently
92+
only implemented for `Executor` as a proof-of-concept.
93+
9094
From William Deegan:
9195
- Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
9296

@@ -97,6 +101,46 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
97101
- Fix of the --debug=sconscript option to return exist statements when using return
98102
statement with stop flag enabled
99103

104+
From Prabhu S. Khalsa:
105+
- Fix typo in user documentation (issue #4458)
106+
107+
From Andrew Morrow:
108+
- The NewParallel scheduler is now the default, the `tm_v2` flag is removed,
109+
and the old scheduler is opt-in under `--experimental=legacy_sched`. Additionally,
110+
the new scheduler is now used for -j1 builds as well.
111+
- A python interpreter with support for the `threading` package is now required,
112+
and this is enforced on startup. SCons currently sets its minimum supported
113+
Python to 3.6, and it was not until Python 3.7 where `threading` became
114+
default supported. In practice, we expect most real world Python 3.6 deployments
115+
will have `threading` support enabled, so this will not be an issue.
116+
- CacheDir writes no longer happen within the taskmaster critical section,
117+
and therefore can run in parallel with both other CacheDir writes and the
118+
taskmaster DAG walk.
119+
- The NewParallel scheduler now only adds threads as new work requiring execution
120+
is discovered, up to the limit set by -j. This should reduce resource utilization
121+
when the achievable parallelism in the DAG is less than the -j limit.
122+
123+
From Mats Wichmann:
124+
- Add support for Python 3.13 (as of alpha 2). So far only affects
125+
expected bytecodes in ActionTests.py.
126+
- sconsign cleanup - remove some dead code, minor manpage tweaks.
127+
- Be more cautious about encodings fetching command output on Windows.
128+
Problem occurs in piped-spawn scenario, used by Configure tests.
129+
Fixes #3529.
130+
- Clarify/fix documentation of Scanners in User Guide and Manpage.
131+
Fixes #4468.
132+
- Fix bad typing in Action.py: process() and strfunction().
133+
- Add Pseudo() to global functions, had been omitted. Fixes #4474.
134+
- Improve handling of file data that SCons itself processes - try
135+
harder to decode non-UTF-8 text. SCons.Util.to_Text now exists
136+
to convert a byte stream, such as "raw" file data. Fixes #3569, #4462.
137+
The Pseudo manpage entry was updated to provide more clarity.
138+
- The internal routine which implements the PyPackageDir function
139+
would fail with an exception if called with a module which is
140+
not found. It will now return None. Updated manpage entry and
141+
docstring..
142+
- Improve SharedLibrary docs a bit.
143+
100144

101145
RELEASE 4.6.0 - Sun, 19 Nov 2023 17:22:20 -0700
102146

@@ -1442,12 +1486,12 @@ RELEASE 3.1.0 - Mon, 20 Jul 2019 16:59:23 -0700
14421486
scons: rebuilding `file3' because:
14431487
the dependency order changed:
14441488
->Sources
1445-
Old:xxx New:zzz
1446-
Old:yyy New:yyy
1447-
Old:zzz New:xxx
1489+
Old:xxx New:zzz
1490+
Old:yyy New:yyy
1491+
Old:zzz New:xxx
14481492
->Depends
14491493
->Implicit
1450-
Old:/usr/bin/python New:/usr/bin/python
1494+
Old:/usr/bin/python New:/usr/bin/python
14511495
- Fix Issue #3350 - SCons Exception EnvironmentError is conflicting with Python's EnvironmentError.
14521496
- Fix spurious rebuilds on second build for cases where builder has > 1 target and the source file
14531497
is generated. This was causing the > 1th target to not have it's implicit list cleared when the source
@@ -7987,4 +8031,3 @@ A brief overview of important functionality available in release 0.01:
79878031
- Linux packages available in RPM and Debian format.
79888032

79898033
- Windows installer available.
7990-

CONTRIBUTING.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,13 +297,13 @@ You may specifically list one or more tests to be run::
297297

298298
$ python runtest.py SCons/BuilderTests.py
299299

300-
$ python runtest.py test/option-j.py test/Program.py
300+
$ python runtest.py test/option/option-j.py test/Program.py
301301

302302
You also use the ``-f`` option to execute just the tests listed in a specified
303303
text file::
304304

305305
$ cat testlist.txt
306-
test/option-j.py
306+
test/option/option-j.py
307307
test/Program.py
308308
$ python runtest.py -f testlist.txt
309309

RELEASE.txt

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ CHANGED/ENHANCED EXISTING FUNCTIONALITY
3232
- Add an optional argument list string to configure's CheckFunc method so
3333
that the generated function argument list matches the function's
3434
prototype when including a header file. Fixes GH Issue #4320
35+
- Now supports pre-release Python 3.13
36+
- Support for Python versions without support for the `threading` package has been removed
3537
- MSVC: For msvc version specifications without an 'Exp' suffix, an express
3638
installation is used when no other edition is detected for the msvc version.
3739
This was the behavior for Visual Studio 2008 (9.0) through Visual Studio 2015
@@ -73,12 +75,30 @@ FIXES
7375
VSWHERE and found additional msvc installations, the new installations were not
7476
reflected in the installed vcs list. Now, when a user-specified vswhere
7577
executable finds new msvc installations, the installed vcs list is reconstructed.
78+
- On Windows platform, when collecting command output (Configure checks),
79+
make sure decoding of bytes doesn't fail.
80+
- Documentation indicated that both Pseudo() and env.Pseudo() were usable,
81+
but Pseudo() did not work; is now enabled.
82+
- Improve handling of file data that SCons itself processes - as in
83+
scanners - try harder to decode non-UTF-8 text.
84+
- PyPackageDir no longer fails if passed a module name which cannot be found,
85+
now returns None.
7686

7787
IMPROVEMENTS
7888
------------
7989

8090
- Use of NotImplemented instead of NotImplementedError for special methods
8191
of _ListVariable class
92+
- The NewParallel scheduler is now the default, the `tm_v2` flag is removed,
93+
and the old scheduler is opt-in under `--experimental=legacy_sched`. Additionally,
94+
the new scheduler is now used for -j1 builds as well.
95+
NOTE: This should significantly improve SCons performance for larger parallel builds
96+
(Larger -j values)
97+
- CacheDir writes no longer happen within the taskmaster critical section, and therefore
98+
can run in parallel with both other CacheDir writes and the taskmaster DAG walk.
99+
- The NewParallel scheduler now only adds threads as new work requiring execution
100+
is discovered, up to the limit set by -j. This should reduce resource utilization
101+
when the achievable parallelism in the DAG is less than the -j limit.
82102
- MSVC: Visual Studio 2015 Express (14.0Exp) does not support the sdk version
83103
argument. Visual Studio 2015 Express does not support the store argument for
84104
target architectures other than x86. Script argument validation now takes into
@@ -95,14 +115,18 @@ PACKAGING
95115
DOCUMENTATION
96116
-------------
97117

98-
- List any significant changes to the documentation (not individual
99-
typo fixes, even if they're mentioned in src/CHANGES.txt to give
100-
the contributor credit)
118+
- Fixed the Scanner examples in the User Guide to be runnable and added
119+
some more explantion. Clarified discussion of the scanner function in
120+
the Scanner Objects section of the manpage.
121+
- The manpage entry for Pseudo was clarified.
122+
- The manpage entry for SharedLibrary was clarified.
101123

102124
DEVELOPMENT
103125
-----------
104126

105127
- Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
128+
- Created SCons.Util.sctyping to contain complex type information, allowing
129+
for repo-wide type hinting without causing cyclical dependencies.
106130

107131
Thanks to the following contributors listed below for their contributions to this release.
108132
==========================================================================================

0 commit comments

Comments
 (0)