Opened 5 years ago

Closed 5 years ago

#12299 closed enhancement (fixed)

scons-3.1.0

Reported by: Douglas R. Reno Owned by: Bruce Dubbs
Priority: normal Milestone: 9.0
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

New minor version

Change History (3)

comment:1 by Bruce Dubbs, 5 years ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

comment:2 by Bruce Dubbs, 5 years ago

RELEASE 3.1.0 - Mon, 20 Jul 2019 16:59:23 -0700

  • Code to supply correct version-specifier argument to vswhere for VS version selection.
  • 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 > 1st target to not have its 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.
  • Additional fix to issue 3135 - Also handle 'pure' and 'elemental' type bound procedures
  • Fix issue 3135 - Handle Fortran submodules and type bound procedures
  • 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.
  • Fix handling of Visual Studio Compilers to properly reject any unknown HOST_PLATFORM or TARGET_PLATFORM
  • Added support for Visual Studio 2019 toolset.
  • 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
  • Add logic to derive correct version argument to vswhere
  • Enable LaTeX scanner to find more than one include per line
  • 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)

comment:3 by Bruce Dubbs, 5 years ago

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.