[Scons-users] SCons 4.7.0 Release
Bill Deegan
bill at baddogconsulting.com
Sun Mar 17 20:50:23 EDT 2024
A new SCons release, 4.7.0, is now available on the SCons download page:
https://scons.org/pages/download.html
Here is a summary of the changes since 4.6.0:
NEW FUNCTIONALITY
-----------------
- Method unlink_files was added to the TestCmd class that unlinks a list of
files
from a specified directory. An attempt to unlink a file is made only
when the
file exists; otherwise, the file is ignored.
CHANGED/ENHANCED EXISTING FUNCTIONALITY
---------------------------------------
- Add an optional argument list string to configure's CheckFunc method so
that the generated function argument list matches the function's
prototype when including a header file. Fixes GH Issue #4320
- Now supports pre-release Python 3.13
- Support for Python versions without support for the `threading` package
has been removed
- Dropped three unused warning classes: DeprecatedSourceCodeWarning,
TaskmasterNeedsExecuteWarning, DeprecatedMissingSConscriptWarning.
* Two warning classes that are actually used were added to manpage section
on
enabling warnings (cache-cleanup-error, future-reserved-variable).
FIXES
-----
- Fix of the --debug=sconscript option to return exist statements when
using return
statement with stop flag enabled
- MSVS: prevent overwriting the SCons environment variable SCONS_HOME with
the OS
environment value of SCONS_HOME in the msvs tool.
- MSVC: Fix the detection of Visual Studio 2015 Express ('14.0Exp') by
adding a
registry key definition and updating the installation root-relative
registry value
at runtime for the location of the VC folder.
- MSVS: Fix the msvs project generation test for MSVS 6.0 to use the
correct name of
the generated project file.
- MSVS: Fix the msvs project generation test scripts so that "false
positive" tests
results are not possible when the initial build is successful and the
command-line
build of the project file fails.
- On Windows platform, when collecting command output (Configure checks),
make sure decoding of bytes doesn't fail.
- Documentation indicated that both Pseudo() and env.Pseudo() were usable,
but Pseudo() did not work; is now enabled.
- Improve handling of file data that SCons itself processes - as in
scanners - try harder to decode non-UTF-8 text.
- PyPackageDir no longer fails if passed a module name which cannot be
found,
now returns None.
- Add locking around creation of CacheDir config file. Fixes issue #4489.
IMPROVEMENTS
------------
- Use of NotImplemented instead of NotImplementedError for special methods
of _ListVariable class
- The NewParallel scheduler is now the default, the `tm_v2` flag is removed,
and the old scheduler is opt-in under `--experimental=legacy_sched`.
Additionally,
the new scheduler is now used for -j1 builds as well.
NOTE: This should significantly improve SCons performance for larger
parallel builds
(Larger -j values)
- CacheDir writes no longer happen within the taskmaster critical section,
and therefore
can run in parallel with both other CacheDir writes and the taskmaster
DAG walk.
- The NewParallel scheduler now only adds threads as new work requiring
execution
is discovered, up to the limit set by -j. This should reduce resource
utilization
when the achievable parallelism in the DAG is less than the -j limit.
- Dumping an environment with `json` formatting will now explicitly specify
if a given
value cannot be serialized.
PACKAGING
---------
- Remove unnecessary dependencies on pypi packages from setup.cfg
- SCons documentation build can now be controlled through SKIP_DOC
variable - rather than just true/false can now specify
skip none, skip all, skip pdf docs, skip api docs.
DOCUMENTATION
-------------
- Fixed the Scanner examples in the User Guide to be runnable and added
some more explanation. Clarified discussion of the scanner function in
the Scanner Objects section of the manpage.
- The manpage entry for Pseudo was clarified.
- The manpage entry for SharedLibrary was clarified.
- Update API docs for Warnings framework; add two warns to manpage
enable/disable control.
- More consistent use of &Python; in the manpage. A few links added.
A warning about overwriting env['ENV'] and one about Configure
checks possibly not running in in no-exec mode also added.
- Clarify how SCons finds the project top directory, and what that is used
for.
- Clarify MergeFlags usage of a dict argument.
DEVELOPMENT
-----------
- Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
- Created SCons.Util.sctyping to contain complex type information, allowing
for repo-wide type hinting without causing cyclical dependencies.
Thanks to the following contributors listed below for their contributions
to this release.
==========================================================================================
.. code-block:: text
git shortlog --no-merges -ns 4.6.0..HEAD
26 Andrew Morrow
24 Mats Wichmann
14 William Deegan
7 Joseph Brill
6 StenGruener
3 Prabhu S. Khalsa
3 Thaddeus Crews
2 fazledyn-or
1 Michał Górny
1 Piotr Siupa
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20240317/218af185/attachment.htm>
More information about the Scons-users
mailing list