[Scons-dev] SCons 3.1.0 Released

Bill Deegan bill at baddogconsulting.com
Sat Jul 20 22:40:08 EDT 2019


A new SCons checkpoint release, 3.1.0, is now available
  on the SCons download page:

          https://scons.org/pages/download.html

SCons is an Open Source software construction tool—that is, a
next-generation build tool. Think of SCons as an improved, cross-platform
substitute for the classic Make utility with integrated functionality
similar to autoconf/automake and compiler caches such as ccache. In short,
SCons is an easier, more reliable and faster way to build software.

  Here is a summary of the changes since 3.0.5:

  NEW FUNCTIONALITY

    - Added variable TEMPFILEARGJOIN to specify how to join arguments
written
      to temp files used when command lines exceed MAXLINELENGTH when the
      command uses $TEMPFILE{...}
    - Support for MSVC 2019
    - 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.


  CHANGED/ENHANCED EXISTING FUNCTIONALITY

      - 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.

    - 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

    - Changed: Pseudo-builders now inherit OverrideEnvironments. For
      example when calling a pseudo-builder from another
      pseudo-builder the override variables passed to the first
      pseudo-builder call had to be explicitly passed on to the
      internal pseudo-builder call. Now the second pseudo-builder call
      will automatically inherit these override values.

  FIXES
    - 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)
    - Additional fix to issue #3135 - Also handle 'pure' and 'elemental'
type bound procedures

    - Fix handling of Visual Studio Compilers to properly reject any
unknown HOST_PLATFORM or TARGET_PLATFORM
    - Enable LaTeX scanner to find more than one include per line

      under which they would be observed), or major code cleanups

git shortlog --no-merges -ns 3.0.5..HEAD
    64  William Deegan
    56  Mats Wichmann
    10  Adam Gross
     4  Mathew Robinson
     4  Peter Diener
     3  Lukas Schrangl
     1  Daniel Holth
     1  bdbaddog
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20190720/3bca648a/attachment.html>


More information about the Scons-dev mailing list