Scons

Latest version: v4.7.0

Safety actively analyzes 641872 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 13

3.1.2

Not secure
From Edoardo Bezzeccheri
- Added debug option "action_timestamps" which outputs to stdout the absolute start and end time for each target.

From Rob Boehne
- Fix suncxx tool (Oracle Studio compiler) when using Python 3. Previously would throw an exception.
Resolved by properly handling tool version string output as unicode.

From Tim Gates
- Resolved a typo in engine.SCons.Tool

From Adam Gross:
- Resolved a race condition in multithreaded Windows builds with Python 2
in the case where a child process is spawned while a Python action has a
file open. Original author: Ryan Beasley.
- Added memoization support for calls to Environment.Value() in order to
improve performance of repeated calls.


From Jason Kenny
- Update Command() function to accept target_scanner, source_factory, and target_factory arguments.
This makes Command act more like a one-off builder.

From Ivan Kravets
- Added support for "-imacros" to ParseFlags

From Jacek Kuczera:
- Fix CheckFunc detection code for Visual 2019. Some functions
(e.g. memmove) were incorrectly recognized as not available.

From Jakub Kulik
- Fix stacktrace when using SCons with Python 3.5+ and SunOS/Solaris related tools.

From Philipp Maierhöfer:
- Avoid crash with UnicodeDecodeError on Python 3 when a Latex log file in
non-UTF-8 encoding (e.g. containing umlauts in Latin-1 encoding when
the fontenc package is included with \usepackage[T1]{fontenc}) is read.

From Mathew Robinson:
- Improved threading performance by ensuring NodeInfo is shared
across threads. Results in ~13% improvement for parallel builds
(-j > 1) with many shared nodes.
- Improve performance of Entry.disambiguate() by making check for
most common case first, preventing unnecessary IO.
- Improved DAG walk performance by reducing unnecessary work when
there are no un-visited children.

From Mats Wichmann
- Replace instances of string find method with "in" checks where
the index from find() was not used.
- CmdStringHolder fix from issue 3428
- Turn previously deprecated debug options into failures:
--debug=tree, --debug=dtree, --debug=stree, --debug=nomemoizer.
- Experimental New Feature: Enable caching MSVC configuration
If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
SCons will cache the results of past calls to vcvarsall.bat to
a file; integrates with existing memoizing of such vars.
On vs2019 saves 5+ seconds per SCons invocation, which really
helps test suite runs.
- Remove deprecated SourceSignatures, TargetSignatures
- Remove deprecated Builder keywords: overrides and scanner
- Remove deprecated env.Copy
- Remove deprecated BuildDir plus SConscript keyword build_dir
- A number of documentation improvements.

3.1.1

Not secure
From William Deegan:
- Remove obsoleted references to DeciderNeedsNode which could cause crash when using --debug=explain

From Jason Kenny
- Add Fix and test for crash in 3.1.0 when using Decider('MD5-timestamp') and --debug=explain

From Ben Reed:
- Added -fmerge-all-constants to flags that get included in both CCFLAGS and LINKFLAGS.

From Mathew Robinson:
- Fix issue 3415 - Update remaining usages of EnvironmentError to SConsEnvironmentError
this patch fixes issues introduced in 3.1.0 where any of the
following would cause SCons to error and exit:
- CacheDir not write-able
- JSON encoding errors for CacheDir config
- JSON decoding errors for CacheDir config

3.1.0

Not secure
From Joseph Brill:
- Code to supply correct version-specifier argument to vswhere for
VS version selection.

From William Deegan:
- Enhanced --debug=explain output. Now the separate components of the dependency list are split up
as follows:

scons: rebuilding `file3' because:
the dependency order changed:
->Sources
Old:xxx New:zzz
Old:yyy New:yyy
Old:zzz New:xxx
->Depends
->Implicit
Old:/usr/bin/python New:/usr/bin/python
- Fix Issue 3350 - SCons Exception EnvironmentError is conflicting with Python's EnvironmentError.
- Fix spurious rebuilds on second build for cases where builder has > 1 target and the source file
is generated. This was causing the > 1th target to not have it's implicit list cleared when the source
file was actually built, leaving an implicit list similar to follows for 2nd and higher target
['/usr/bin/python', 'xxx', 'yyy', 'zzz']
This was getting persisted to SConsign and on rebuild it would be corrected to be similar to this
['zzz', 'yyy', 'xxx', '/usr/bin/python']
Which would trigger a rebuild because the order changed.
The fix involved added logic to mark all shared targets as peers and then ensure they're implicit
list is all cleared together.
- Fix Issue 3349 - SCons Exception EnvironmentError is conflicting with Python's EnvironmentError.
Renamed to SConsEnvironmentError
- Fix Issue 3350 - mslink failing when too many objects. This is resolved by adding TEMPFILEARGJOIN variable
which specifies what character to join all the argements output into the tempfile. The default remains a space
when mslink, msvc, or mslib tools are loaded they change the TEMPFILEARGJOIN to be a line separator (\r\n on win32)
- Fix performance degradation for MD5-timestamp decider. NOTE: This changes the Decider() function arguments.
From:
def my_decider(dependency, target, prev_ni):
To:
def my_decider(dependency, target, prev_ni, repo_node):
Where repo_node is the repository (or other) node to use to check if the node is out of date instead of dependency.

From Peter Diener:
- Additional fix to issue 3135 - Also handle 'pure' and 'elemental' type bound procedures
- Fix issue 3135 - Handle Fortran submodules and type bound procedures

From Adam Gross:
- Upgraded and improved Visual Studio solution/project generation code using the MSVSProject builder.
- Added support for Visual Studio 2017 and 2019.
- Added support for the following per-variant parameters to the builder:
- cpppaths: Provides per-variant include paths.
- cppdefines: Provides per-variant preprocessor definitions.

From Michael Hartmann:
- Fix handling of Visual Studio Compilers to properly reject any unknown HOST_PLATFORM or TARGET_PLATFORM

From Bert Huijben:
- Added support for Visual Studio 2019 toolset.

From Mathew Robinson:
- Update cache debug output to include cache hit rate.
- No longer unintentionally hide exceptions in Action.py
- Allow builders and pseudo-builders to inherit from OverrideEnvironments

From Leonard de Ruijter:
- Add logic to derive correct version argument to vswhere

From Lukas Schrangl:
- Enable LaTeX scanner to find more than one include per line

From Sergey Torokhov:
- Recognize jdk on Gentoo systems.

From Mats Wichmann:
- scons-time takes more care closing files and uses safer mkdtemp to avoid
possible races on multi-job runs.
- Use importlib to dynamically load tool and platform modules instead of imp module
- sconsign: default to .sconsign.dblite if no filename is specified.
Be more informative in case of unsupported pickle protocol (py2 only).
- Fix issue 3336 - on Windows, paths were being added to PATH even if
tools were not found in those paths.
- More fixes for newer Java versions (since 9): handle new jdk directory
naming (jdk-X.Y instead of jdkX.Y) on Windows; handle two-digit major
version. Docstrings improved.
- Fixups for pylint: exception types, redefined functions,
globals, etc. Some old code removed to resolve issues (hashlib is
always present on modern Pythons; no longer need the code for
2.5-and-earlier optparse). cmp is not a builtin function in Py3,
drop one (unused) use; replace one. Fix another instance of
renaming to SConsEnvironmentError. Trailing whitespace.
Consistently use not is/in (if not x is y -> if x is not y).
- Add a PY3-only function for setting up the cachedir that should be less
prone to races. Add a hack to the PY2 version (from Issue 3351) to
be less prone to a race in the check for old-style cache.
- Fix coding error in docbook tool only exercised when using python lxml
- Recognize two additional GNU compiler header directory options in
ParseFlags: -iquote and -idirafter.
- Fix more re patterns that contain \ but not specified as raw strings
(affects scanners for D, LaTeX, swig)

3.0.5

Not secure
From William Deegan:

- Fix Issue 3283 - Handle using --config=force in combination with Decider('MD5-timestamp').
3.0.2 in fix for issue 2980 added that deciders can throw DeciderNeedsNode exception.
The Configure logic directly calls the decider when using --config=force but wasn't handling
that exception. This would yield minimally configure tests using TryLink() not running and
leaving TypeError Nonetype exception in config.log
- Fix Issue 3303 - Handle --config=force overwriting the Environment passed into Configure()'s
Decider and not clearing it when the configure context is completed.
- Add default paths for yacc tool on windows to include cygwin, mingw, and chocolatey
- Fix issue 2799 - Fix mingw tool to respect SHCCCOMSTR, SHLINKCOMSTR and LDMODULECOMSTR
- Fix Issue 3329 - Add support for MS SDK V10.0A (which is commonly installed with VS2017)
- Fix Issue 3333 - Add support for finding vswhere under 32 bit windows installs.

From Maciej Kumorek:
- Update the MSVC tool to include the nologo flag by default in RCFLAGS

From Daniel Moody:
- Change the default for AppendENVPath to delete_existing=0, so path
order will not be changed, unless explicitly set (Issue 3276)
- Fixed bug which threw error when running SCons on windows system with no MSVC installed.
- Update link tool to convert target to node before accessing node member
- Update mingw tool to remove MSVC like nologo CCFLAG
- Add default paths for lex tool on windows to include cygwin, mingw, and chocolatey
- Add lex construction variable LEXUNISTD for turning off unix headers on windows
- Update lex tool to use win_flex on windows if available

From Mats Wichmann:
- Quiet open file ResourceWarnings on Python >= 3.6 caused by
not using a context manager around Popen.stdout
- Add the textfile tool to the default tool list
- Fix syntax on is/is not clauses: should not use with a literal
- Properly retrieve exit code when catching SystemExit
- scons-time now uses context managers around file opens
- Fix regex patterns that were not specified as raw strings

From Bernhard M. Wiedemann:
- Do not store build host+user name if reproducible builds are wanted

3.0.4

Not secure
From Mats Wichmann:
- Improve finding of Microsoft compiler: add a 'products' wildcard
in case 2017 Build Tools only is installed as it is considered a separate
product from the default Visual Studio
- Add TEMPFILESUFFIX to allow a customizable filename extension, as
described in the patch attached to issue 2431.
- scons.py and sconsign.py stopped working if script called as a symlink
to location in scons-local location.
- Fix issue running scons using a symlink to scons.py in an scons-local dir
- Doc updates around Default(), and the various *TARGETS variables.

From Daniel Moody:
- Improved support for VC14.1 and Visual Studio 2017, as well as arm and arm64 targets.
Issues 3268 & Issue 3222
- Initial support for ARM targets with Visual Studio 2017 - Issue 3182 (You must set TARGET_ARCH for this to work)
- Update TempFileMunge class to use PRINT_CMD_LINE_FUNC

From Tobias Herzog
- Enhance cpp scanner regex logic to detect if/elif expressions without whitespaces but
parenthesis like "if(defined FOO)" or "elif!(BAR)" correctly.

3.0.3

Not secure

Page 3 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.