Skip to content

Commit d06ad9e

Browse files
committed
Merge branch 'master' into HEAD
Manually resolve conflicts: * CHANGES.txt * RELEASE.txt * SCons/Tool/MSCommon/vc.py
1 parent ed18bdf commit d06ad9e

File tree

169 files changed

+2415
-2183
lines changed

Some content is hidden

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

169 files changed

+2415
-2183
lines changed

.github/workflows/experimental_tests.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,19 @@ jobs:
3232
# Steps represent a sequence of tasks that will be executed as part of the job
3333
steps:
3434
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
35-
- uses: actions/checkout@v2
35+
- uses: actions/checkout@v4.1.1
3636

3737
# experiment: maybe don't need this?
3838
# update: looks like we do: with this commented out, the build hung
3939
- name: Set up MinGW
40-
uses: egor-tensin/setup-mingw@v2
40+
uses: egor-tensin/setup-mingw@v2.2.0
4141
if: matrix.os == 'windows-2019'
4242
with:
4343
platform: x64
44+
static: 0
4445

4546
- name: Set up Python 3.11 ${{ matrix.os }}
46-
uses: actions/setup-python@v2
47+
uses: actions/setup-python@v5.0.0
4748
with:
4849
python-version: '3.11'
4950

.github/workflows/framework_tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ jobs:
2929

3030
steps:
3131
# Checkouut repository under $GITHUB_WORKSPACE
32-
- uses: actions/checkout@v2
32+
- uses: actions/checkout@v4.1.1
3333

3434
- name: Set up Python 3.11 ${{ matrix.os }}
35-
uses: actions/setup-python@v2
35+
uses: actions/setup-python@v5.0.0
3636
with:
3737
python-version: '3.11'
3838

.github/workflows/runtest.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ jobs:
2828
# Steps represent a sequence of tasks that will be executed as part of the job
2929
steps:
3030
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
31-
- uses: actions/checkout@v2
31+
- uses: actions/checkout@v4.1.1
3232

3333
- name: Set up Python 3.10 ${{ matrix.os }}
34-
uses: actions/setup-python@v2
34+
uses: actions/setup-python@v5.0.0
3535
with:
3636
python-version: '3.10'
3737

@@ -46,7 +46,7 @@ jobs:
4646
python runtest.py --all --time --jobs=2
4747
4848
- name: Archive Failed tests ${{ matrix.os }}
49-
uses: actions/upload-artifact@v2
49+
uses: actions/upload-artifact@v3.1.3
5050
with:
5151
name: ${{ matrix.os }}-failed-tests
5252
path: |

.github/workflows/scons-package.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@ jobs:
1414
runs-on: ubuntu-20.04
1515

1616
steps:
17-
- uses: actions/checkout@v2
17+
- uses: actions/checkout@v4.1.1
1818

1919
- name: Set up Python 3.10
20-
uses: actions/setup-python@v2
20+
uses: actions/setup-python@v5.0.0
2121
with:
2222
python-version: '3.10'
2323

CHANGES.txt

Lines changed: 118 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -9,56 +9,41 @@ NOTE: 4.3.0 now requires Python 3.6.0 and above. Python 3.5.x is no longer suppo
99

1010
RELEASE VERSION/DATE TO BE FILLED IN LATER
1111

12-
From Max Bachmann:
13-
- Add missing directories to searched paths for mingw installs
12+
From Ataf Fazledin Ahamed:
13+
- Use of NotImplemented instead of NotImplementedError for special methods
14+
of _ListVariable class
1415

1516
From Joseph Brill:
16-
- Fix issue #4312: the cached installed msvc list had an indirect dependency
17-
on the target architecture in the environment dictionary. The first call
18-
to construct the installed msvc list now forces the target architecture to be
19-
undefined, constructs the installed msvc list, and then restores the original
20-
target architecture.
21-
Note: an indirect dependency on the VSWHERE construction variable in the
22-
environment remains.
23-
- Fix issue #4312: explicitly guard against an empty regular expression list
24-
when msvc is not installed.
25-
- When trying to find a valid msvc batch file, check that the compiler executable
26-
(cl.exe) exists for VS6 to VS2015 to avoid executing the msvc batch file. Always
27-
check that the compiler executable is found on the msvc script environment path
28-
after running the msvc batch file. Only use the sdk batch files when all of the
29-
msvc script host/target combinations have been exhausted and a valid script was
30-
not found.
31-
- Add ARM64 host configurations for windows and msvc.
32-
Note: VS2013 and earlier has not been tested on ARM64.
33-
- If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 and later
34-
on ARM64 hosts when using an arm32 build of python to prevent a powershell dll
35-
not found error pop-up window.
36-
- Fix an issue where test SConfTests.py would fail when mscommon debugging
37-
was enabled. The mscommon debug filter class registered with the logging
38-
module was refactored.
39-
- Add arm64 to the MSVS supported architectures list for VS2017 and later to be
40-
consistent with the current documentation of MSVS_ARCH.
41-
- Fix an issue with an unhandled MissingConfiguration exception due to an msvc
42-
registry query that returns a path that does not exist. Multiple invocation
43-
paths were not prepared to handle the MissingConfiguration exception. The
44-
MissingConfiguration exception type was removed.
45-
- The MSCommon module import was changed from a relative import to a top-level
46-
absolute import in the following Microsoft tools: midl, mslib, mslink, mssdk, msvc,
47-
msvs. Moving any of these tools that used relative imports to the scons site tools
48-
folder would fail on import (i.e., the relative import paths become invalid when
49-
moved).
50-
- The detection of the msvc compiler executable (cl.exe) has been modified. The
51-
compiler detection no longer considers the host os environment path. In addition,
52-
existence of the msvc compiler executable is checked in the detection dictionary
53-
and the scons ENV path before the detection dictionary is merged into the scons
54-
ENV. Different warnings are produced when the msvc compiler is not detected in the
55-
detection dictionary based on whether or not an msvc compiler was detected in the
56-
scons ENV path (i.e., already exists in the user's ENV path prior to detection).
17+
- Fix issue #2755: the msvs tool no longer writes the OS environment SCONS_HOME
18+
value into the SCons environment when the SCONS_HOME variable already exists
19+
in the SCons environment. Prior to this change, a valid user-defined SCons
20+
environment value for SCONS_HOME would be overwritten with the OS environment
21+
value of SCONS_HOME which could be None (i.e., undefined).
22+
- Update the windows registry keys for detection of Visual Studio 2015 Express
23+
('14.0Exp'): the VS2015 registry key ('WDExpress') appears to be different
24+
than the registry key ('VCExpress') for earlier Visual Studio express
25+
versions. The registry key value is relative to the installation root rather
26+
than the VC folder and requires additional path components during evaluation.
27+
- Fix the vs-6.0-exec.py test script: the msvs generated project is 'foo.dsp'
28+
and the command-line invocation of the Visual Studio development environment
29+
program was attempting to build 'test.dsp'. The command-line invocation was
30+
changed to build 'foo.dsp'.
31+
- Update the msvs project generation test scripts: the msvs project execution
32+
tests could produce a "false positive" test result when the test executable is
33+
correctly built via the SConstruct env.Program() call and the command-line
34+
invocation of the Visual Studio development environment program fails. The
35+
test passes due to the existence of the test executable from the initial
36+
build. The tests were modified to delete the test executable, object file,
37+
and sconsign file prior to the command-line invocation of the VS development
38+
binary.
39+
- Method unlink_files was added to the TestCmd class that unlinks a list of
40+
files from a specified directory. An attempt to unlink a file is made only
41+
when the file exists; otherwise, the file is ignored.
42+
- Fix issue #4320: add an optional argument list string to configure's CheckFunc
43+
method so that the generated function argument list matches the function's
44+
prototype when including a header file.
5745
- For msvc version specifications without an 'Exp' suffix, an express installation
5846
is used when no other edition is detected for the msvc version.
59-
- VS2015 Express (14.0Exp) may not have been detected. The registry keys written
60-
during installation appear to be different than for earlier express versions.
61-
VS2015 Express should be correctly detected now.
6247
- VS2015 Express (14.0Exp) does not support the sdk version argument. VS2015 Express
6348
does not support the store argument for target architectures other than x86.
6449
Script argument validation now takes into account these restrictions.
@@ -101,6 +86,76 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
10186
installed vcs list. During runtime, if a user-specified vswhere executable finds
10287
new msvc installations, internal runtime caches are cleared and the installed vcs
10388
list is reconstructed.
89+
90+
From William Deegan:
91+
- Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
92+
93+
From Michał Górny:
94+
- Remove unecessary dependencies on pypi packages from setup.cfg
95+
96+
From Sten Grüner:
97+
- Fix of the --debug=sconscript option to return exist statements when using return
98+
statement with stop flag enabled
99+
100+
101+
RELEASE 4.6.0 - Sun, 19 Nov 2023 17:22:20 -0700
102+
103+
From Max Bachmann:
104+
- Add missing directories to searched paths for mingw installs
105+
106+
From Joseph Brill:
107+
- Fix issue #4312: the cached installed msvc list had an indirect dependency
108+
on the target architecture in the environment dictionary. The first call
109+
to construct the installed msvc list now forces the target architecture to be
110+
undefined, constructs the installed msvc list, and then restores the original
111+
target architecture.
112+
Note: an indirect dependency on the VSWHERE construction variable in the
113+
environment remains.
114+
- Fix issue #4312: explicitly guard against an empty regular expression list
115+
when msvc is not installed.
116+
- When trying to find a valid msvc batch file, check that the compiler executable
117+
(cl.exe) exists for VS6 to VS2015 to avoid executing the msvc batch file. Always
118+
check that the compiler executable is found on the msvc script environment path
119+
after running the msvc batch file. Only use the sdk batch files when all of the
120+
msvc script host/target combinations have been exhausted and a valid script was
121+
not found.
122+
- Add ARM64 host configurations for windows and msvc.
123+
Note: VS2013 and earlier has not been tested on ARM64.
124+
- If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 and later
125+
on ARM64 hosts when using an arm32 build of python to prevent a powershell dll
126+
not found error pop-up window.
127+
- Fix an issue where test SConfTests.py would fail when mscommon debugging
128+
was enabled. The mscommon debug filter class registered with the logging
129+
module was refactored.
130+
- Add arm64 to the MSVS supported architectures list for VS2017 and later to be
131+
consistent with the current documentation of MSVS_ARCH.
132+
- Fix an issue with an unhandled MissingConfiguration exception due to an msvc
133+
registry query that returns a path that does not exist. Multiple invocation
134+
paths were not prepared to handle the MissingConfiguration exception. The
135+
MissingConfiguration exception type was removed.
136+
- The MSCommon module import was changed from a relative import to a top-level
137+
absolute import in the following Microsoft tools: midl, mslib, mslink, mssdk, msvc,
138+
msvs. Moving any of these tools that used relative imports to the scons site tools
139+
folder would fail on import (i.e., the relative import paths become invalid when
140+
moved).
141+
- The detection of the msvc compiler executable (cl.exe) has been modified:
142+
* The host os environment path is no longer evaluated for the existence of the
143+
msvc compiler executable when searching the detection dictionary.
144+
* The existence of the msvc compiler executable is checked in the detection
145+
dictionary and the scons ENV path before the detection dictionary is merged
146+
into the scons ENV.
147+
* Different warnings are produced when the msvc compiler is not detected in the
148+
detection dictionary based on whether or not an msvc compiler was detected in
149+
the scons ENV path (i.e., a msvc compiler executable already exists in the
150+
user's ENV path prior to detection).
151+
* The warning message issued when a msvc compiler executable is not found in the
152+
detection dictionary was modified by adding the word "requested":
153+
Old warning: "Could not find MSVC compiler 'cl'."
154+
New warning: "Could not find requested MSVC compiler 'cl'.".
155+
* An additonal sentence is appended to the warning message issued when an msvc
156+
compiler executable is not found in the msvc detection dictionary and is found
157+
in the user's ENV path prior to detection:
158+
" A 'cl' was found on the scons ENV path which may be erroneous."
104159

105160
From Vitaly Cheptsov:
106161
- Fix race condition in `Mkdir` which can happen when two `SConscript`
@@ -113,11 +168,19 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
113168
- Obsoleted YACCVCGFILESUFFIX, being replaced by YACC_GRAPH_FILE_SUFFIX.
114169
If YACC_GRAPH_FILE_SUFFIX is not set, it will respect YACCVCGFILESUFFIX.
115170

171+
From Sten Grüner
172+
- The newly added --debug=sconscript option (new) will output notices when
173+
entering an exiting each SConscript as they are processed.
174+
116175
From Philipp Maierhöfer:
117176
- Fix gfortran tool initialization. Defaults to using binary named gfortran
118177
as would be expected, and properly set's SHFORTRAN flags to include -fPIC
119178
where previously it was only doing so for the other fortran versions (F77,..)
120179

180+
From Jonathon Reinhart:
181+
- Fix another instance of `int main()` in CheckLib() causing failures
182+
when using -Wstrict-prototypes.
183+
121184
From Mats Wichmann
122185
- C scanner's dictifyCPPDEFINES routine did not understand the possible
123186
combinations of CPPDEFINES - not aware of a "name=value" string either
@@ -238,11 +301,15 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
238301
Python stdlib types module.
239302
- TeX tests: skip tests that use makeindex or epstopdf not installed, or
240303
if `kpsewhich glossaries.sty` fails.
241-
242-
243-
From Jonathon Reinhart:
244-
- Fix another instance of `int main()` in CheckLib() causing failures
245-
when using -Wstrict-prototypes.
304+
- Added a .note.GNU-stack section to the test assembler files to
305+
avoid the GNU linker issuing warnings for its absence.
306+
- Eliminate more http: references (mostly in comments/docstrings where
307+
they really weren't harmful). A few links labeled dead with no alt.
308+
- Add JDK 21 LTS support
309+
- Add a LIBLITERALPREFIX variable which can be set to the linker's
310+
prefix for considering a library argument unmodified (e.g. for the
311+
GNU linker, the ':' in '-l:libfoo.a'). Fixes Github issue #3951.
312+
- Update PCH builder docs with some usage notes.
246313

247314
RELEASE 4.5.2 - Sun, 21 Mar 2023 14:08:29 -0700
248315

0 commit comments

Comments
 (0)