#13770: scons-4.0.0
-------------------------+-----------------------
 Reporter:  bdubbs       |       Owner:  renodr
     Type:  enhancement  |      Status:  assigned
 Priority:  normal       |   Milestone:  9.2
Component:  BOOK         |     Version:  SVN
 Severity:  normal       |  Resolution:
 Keywords:               |
-------------------------+-----------------------

Comment (by renodr):

 {{{
 ELEASE 4.0.0 - Sat, 04 Jul 2020 12:00:27 +0000

   From Dirk Baechle:
     - Updated documentation toolchain to work properly under Python3, also
       removed libxslt support from the Docbook Tool. (issue #3580)
     - Added Docker images for building and testing SCons. (issue #3585)

   From James Benton:
     - Improve Visual Studio solution/project generation code to add
 support
       for a per-variant cppflags. Intellisense can be affected by
 cppflags,
       this is especially important when it comes to /std:c++* which
 specifies
       what C++ standard version to target. SCons will append
 /Zc:__cplusplus
       to the project's cppflags when a /std:c++* flag is found as this is
       required for intellisense to use the C++ standard version from
 cppflags.

   From Rob Boehne
     - Specify UTF-8 encoding when opening Java source file as text.  By
 default, encoding is the output
     of locale.getpreferredencoding(False), and varies by platform.

   From Joseph Brill:
     - MSVC updates: When there are multiple product installations (e.g,
 Community and
       Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional,
       or Community installation will be selected before a Build Tools
 installation when
       "14.1" or "14.2" is requested, respectively. (GH Issue #3699).
     - MSVC updates: When there are multiple product installations of MSVC
 2017 (e.g.,
       Community and Express), 2017 Express is no longer returned when
 "14.1" is
       requested.  Only 2017 Express will be returned when "14.1Exp" is
 requested.
       (GH Issue #3699).
     - MSVC updates: An MSVC 6.0 installation now appears in the installed
 versions list
       when msvc debug output is enabled (GH Issue #3699).
     - MSVS test updates: Tests for building a program using generated MSVS
 project and
       solution files using MSVS 2015 and later now work as expected on x86
 hosts.
     - Test update: Reduce the number of "false negative" test failures for
 the interactive
       configuration test (test/interactive/configure.py).
     - MSVS update: Fix the development environment path for MSVS 7.0.

   From William Deegan:
     - Fix broken clang + MSVC 2019 combination by using MSVC configuration
 logic to
       propagate'VCINSTALLDIR' and 'VCToolsInstallDir' which clang tools
 use to locate
       header files and libraries from MSVC install. (Fixes GH Issue #3480)
     - Added C:\msys64\mingw64\bin to default mingw and clang windows
 PATH's.  This
       is a reasonable default and also aligns with changes in Appveyor's
 VS2019 image.
     - Drop support for Python 2.7. SCons will be Python 3.5+ going
 forward.
     - Change SCons.Node.ValueWithMemo to consider any name passed when
 memoizing Value() nodes
     - Fix Github Issue #3550 - When using Substfile() with a value like
 Z:\mongo\build\install\bin
       the implementation using re.sub() would end up interpreting the
 string and finding regex escape
       characters where it should have been simply replacing existing text.
 Switched to use string.replace().
     - Fix Github Issue #2904 - Provide useful error message when more than
 one Configure Contexts are opened.
       Only one open is allowed. You must call conf.Finish() to complete
 the currently open one before creating another
     - Add msys2 installed mingw default path to PATH for mingw tool.
       - C:\msys64\mingw64\bin
     - Purge obsolete internal build and tooling scripts
     - Allow user specified location for vswhere.exe specified by VSWHERE.
       NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink'
 tool(s) are initialized to have any effect.
     - Resolve Issue #3451 and Issue #3450 - Rewrite SCons setup.py and
 packaging. Move script logic to entry points so
       package can create scripts which use the correct version of Python.
     - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
 SHLIBVERSIONFLAGS
       NOTE: If your build depends on the above you must now add to your
 SHLIBVERSIONFLAGS
     - Speedup bin/docs-update-generated by caching parsed docbook schema.
 (60x speedup)
     - Reorganized source tree. Moved src/engine/SCons to SCons to be more
 in line with current Python source
       tree organization practices.
     - Renamed as.py to asm.py and left redirecting tool.  'as' is a
 reserved word and so
       changing the name was required as we wanted to import symbols for
 use in compilation_db
       tool.
     - Add CompilationDatabase() builder in compilation_db tool.
 Contributed by MongoDB.
       Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the
 files are absolute or relative
       paths.  Address Issue #3693 and #3694 found during development.
     - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports
 python 3.4+)
       and skipping Python 3.8's new pickle protocol 5 whose main advantage
 is for out-of-band data buffers.
       NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get
 a a pickle protocol error. Remove your
       .sconsign.dblite. You will end up with a full rebuild.

   From Andrii Doroshenko:
     - Extended `Environment.Dump()` to select a format to serialize
 construction variables (pretty, json).

   From Jeremy Elson:
     - Updated design doc to use the correct syntax for Depends()

   From Adam Gross:
     - Added support for scanning multiple entries in an action string if
       IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
 more thorough
       action scanning where every item in each command line is scanned to
 determine
       if it is a non-source and non-target path and added to the list of
 implicit dependencies
       for the target.
     - Added support for taking instances of the Value class as implicit
       dependencies.
     - Added new module SCons.Scanner.Python to allow scanning .py files.
     - Added support for explicitly passing a name when creating Value()
 nodes. This may be useful
       when the value can't be converted to a string or if having a name is
 otherwise desirable.
     - Fixed usage of abspath and path for RootDir objects on Windows.
 Previously
       env.fs.Dir("T:").abspath would return "T:\T:" and now it correctly
 returns "T:".

   From Ivan Kravets, PlatformIO
     - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
       which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
 #else,
       #elif, #define, etc.)
     - Improvements for virtual C Pre-Processor:
       * Handle UNSIGNED LONG and LONG numeric constants in DEC (keep
 support for HEX)
       * Skip unrecognized directives, such as `#if( defined ...)`
       * Ignore `#include DYNAMIC_INCLUDE` directive that depends on a
 dynamic
         macro which is not located in a state TABLE.
       * Cleanup CPP expressions before evaluating (strip comments,
 carriage returns)

   From Iosif Kurazs:
     - Added a new flag called "linedraw" for the command line argument  "
 --tree"
       that instructs scons to use single line drawing characters to draw
 the dependency tree.

   From Daniel Moody:
     - Add no_progress (-Q) option as a set-able option. However, setting
 it in the
       SConstruct/SConscript will still cause "scons: Reading SConscript
 files ..." to be
       printed, since the option is not set when the build scripts first
 get read.
     - Added check for SONAME in environment to setup symlinks correctly
 (Github Issue #3246)
     - User callable's called during substition expansion could possibly
 throw a TypeError
       exception, however SCons was using TypeError to detect if the
 callable had a different
       signature than expected, and would silently fail to report user's
 exceptions. Fixed to
       use signature module to detect function signature instead of
 TypeError. (Github Issue #3654)
     - Added storage of SConstructs and SConscripts nodes into global set
 for checking
       if a given node is a SConstruct/SConscript.
       Added new node function SCons.Node.is_sconscript(self) (Github Issue
 #3625)

   From Andrew Morrow:
     - Fix Issue #3469 - Fixed improper reuse of temporary and compiled
 files by Configure when changing
       the order and/or number of tests.  This is done by using the hash of
 the generated temporary files
       content and (For the target files) the hash of the action.
       So where previously files would be named:
       - config_1.c, config_1.o, config_1
       The will now be named (For example)
       - conftest_68b375d16e812c43e6d72d6e93401e7c_0.c,
 conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187.o
         or
         conftest_68b375d16e812c43e6d72d6e93401e7c_0.o
 conftest_68b375d16e812c43e6d72d6e93401e7c_0_5713f09fc605f46b2ab2f7950455f187
 (for executable)

   From Mathew Robinson:
     - Improve performance of Subst by preventing unnecessary frame
       allocations by no longer defining the *Subber classes inside of
 their
       respective function calls.
     - Improve performance of Subst in some cases by preventing
       unnecessary calls to eval when a token is surrounded in braces
       but is not a function call.
     - Improve performance of subst by removing unnecessary recursion.
     - Cleanup dangling symlinks before running builders (Issue #3516)

   From Mats Wichmann:
     - Remove deprecated SourceCode
     - str.format syntax errors fixed
     - a bunch of linter/checker syntax fixups
     - Convert remaining uses of insecure/deprecated mktemp method.
     - Clean up some duplications in manpage.  Clarify portion of manpage
 on Dir and File nodes.
     - Reduce needless list conversions.
     - Fixed regex in Python scanner.
     - Accommodate VS 2017 Express - it's got a more liberal license then
 VS
       Community, so some people prefer it (from 2019, no more Express)
     - vswhere call should also now work even if programs aren't on the C:
 drive.
     - Add an alternate warning message if cl.exe is not found and msvc
 config
       cache is in use (SCONS_CACHE_MSVC_CONFIG was given) - config cache
       may be out of date.
     - Fixed bug where changing TEXTFILESUFFIX would cause Substfile() to
 rebuild. (Github Issue #3540)
     - Script/Main.py now uses importlib instead of imp module.
     - Drop some Python 2-isms.
     - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to
 msvc
       tool setup if set in environment. Add Powershell to default env
       (used to call telemetry script).
     - Microsoft Visual Studio - switch to using uuid module to generate
 GUIDs rather than hand rolled
       method using md5 directly.
       NOTE: This change affects the following builders' output. If your
 build depends on the output of these builders
       you will likely see a rebuild.
       * Package() (with PACKAGETYPE='msi')
       * MSVSSolution()
       * MSVSProject()
     - Docbook builder provides a fallback if lxml fails to generate
       a document with tostring().
     - Fix description of ARCOMSTR constr. var. (issue 3636). Previously
 the text was a copy of ASCOMSTR which
       has different function.
     - Update xml files in SCons to reflect changed relative paths after
       code restructuring (src/engine/SCons -> SCons)
     - Preliminary Python 3.9 support - elimination of some warnings.
     - Drop the with_metaclass jig which was designed to let class
       definitions using a metaclass be written the same for Py2/Py3.
     - Bump python_version_unsupported (and deprecated) to indicate 3.5
       is lowest supported Python.
     - ParseFlags should not modify the user's passed in dict in case it's
       a compound data structure (e.g. values are lists) (issue #3665)
     - In Py3 classes no longer need to be listed as deriving from object.
     - Remove deprecated check for Task subclasses needing a needs_execute
       method - this is now enforced via an abstract base class, so the
       check and test is no longer needed.
     - Close various logfiles (trace, cache, taskmastertrace, configure)
       when done using atexit calls.
     - Rebase forked copy of shutil.copytree to Python 3.7 stlib version.
     - Significant rework of documentation: API docs are now generated
       using Sphinx; manpage and user guide now use more "standard"
       markup elements (which could facilitate later conversion to a
       different doc format, should that choice be made); significant
       rewordings in manpage.  Manpage Examples moved to an external
       repository / website (scons-cookbook.readthedocs.io).
     - Clean up test harness and tests' use of subdir, file_fixture and
       dir_fixture.
     - SubstitutionEnvironment and OverrideEnvironment now have keys()
       and values() methods to better emulate a dict (already had items()).

 }}}

--
Ticket URL: <http://wiki.linuxfromscratch.org/blfs/ticket/13770#comment:2>
BLFS Trac <http://wiki.linuxfromscratch.org/blfs>
Beyond Linux From Scratch
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-book
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to