From bill at baddogconsulting.com Sun Mar 17 20:50:23 2024 From: bill at baddogconsulting.com (Bill Deegan) Date: Sun, 17 Mar 2024 17:50:23 -0700 Subject: [Scons-dev] SCons 4.7.0 Release Message-ID: 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: