Menu

SCons checkpoint 0.97.0d20070918 is now available

A new SCons checkpoint release, 0.97.0d20070918, is now available at
the SCons download page:

    http://www.scons.org/download.php

A SCons "checkpoint release" is intended to provide early access to new
features so they can be tested in the field before being released for
adoption by other software distributions.

Note that a checkpoint release is developed using the same test-driven
development methdology as all SCons releases. Existing SCons
functionality should all work as it does in previous releases (except for
any changes identified in the release notes) and early adopters should be
able to use a checkpoint release safely for production work with existing
SConscript files. If not, it represents not only a bug in SCons but
also a hole in the regression test suite, and we want to hear about it.

New features may be more lightly tested than in past releases, especially
as concerns their interaction with all of the other functionality
in SCons. We are especially interested in hearing bug reports about
new functionality.

We do not recommend that downstream distributions (Debian, Fedora,
etc.) package a checkpoint release, mainly to avoid confusing the "public"
release numbering with the long checkpoint release names.

SPECIAL NOTE: This release contains a significant internal refactoring
of how SCons stores information for deciding if a file is up-to-date.
This change will cause rebuilds when run in a tree built by an earlier
version of SCons, but should otherwise handle the upgrade gracefully.
Please see the Release Notes for details. We are very interested in
reports of any problems that seem due to this change.

Here is a summary of the changes since 0.97.0d20070809:

NEW FUNCTIONALITY

  • New env.Decider() and Node.Decider() methods allow more
    straightforward configuration of up-to-date decision-making, includng
    use of arbitrary functions to decide if a given dependency has changed
    since the last time a target was built.
  • Each target now has an implicit dependency on the external command(s)
    used to build it, as found by searching env['ENV']['PATH'] for the
    first argument on each executed command line.
  • A new $IMPLICIT_COMMAND_DEPENDENCIES construction variable can
    disable the new automatic implicit dependency on executed commands.
  • A new Progress() function supports the ability to display progress
    while building targets.
  • A new $JAVABOOTCLASSPATH variable specifies directories to be passed
    to the javac -bootclasspath option.
  • The Intel C compiler is now supported on Windows64.

CHANGED/ENHANCED EXISTING FUNCTIONALITY

  • env.CacheDir() can now be set per construction environment.
  • The CacheDir() function now sets an overridable global default.
  • The Return() function now stops processing the SConscript file and
    returns immediately. A new "stop=" keyword argument can be set to
    False to preserve the old behavior.
  • Configure actions (while reading SConscript files) are no longer
    executed when cleaning (-c) or getting help (-h or -H).
  • When Cloning a construction environment, any configured variables
    are set before applying tools.
  • A new "ensure_suffix" keyword to Builder() definitions ensures the
    configured suffix will be added to targets even if the target already
    has a different suffix.
  • On SGI IRIX, $SHCXX now uses $CXX by default (like other tools).

FIXES

  • The wix Tool module no longer dies when faced with null entries in
    the external $PATH variable.
  • Use of exitstatfunc on an Action has been fixed..
  • SCons now avoids race conditions with same-named files and directory
    creation when pushing copies of files to CacheDir().
  • SCons now recognizes $ as a valid character in Java class names.
  • Auxiliary files generated by some LaTeX packages that do not end in
    ".aux" now also get deleted by scons -c.
  • ParseConfig(), MergeFlags() and ParseFlags() now handle output
    from a *config command with quoted path names that contain spaces,
    when using Python 2.3 or later.
  • When a file gets added to a directory, the directory now gets
    re-scanned for the new implicit dependency.
  • A file that's specified multiple times in a target list so no longer
    causes some dependency Nodes to "disappear" during the dependency
    graph walk when the -j option is used.

DOCUMENTATION

  • Install() and InstallAs() have been moved from the list of functions
    to the list of Builders.
  • All man page function examples now begin with "Example:" or "Examples:".

Thanks to Carsten Koch, Tzvetan Mikov, Gary Oberbrunner, Sohail
Somani, Matthias Troffaes, Greg Ward and Christoph Wiedemann for their
contributions to this release.

Posted by Gary Oberbrunner 2007-09-19

Log in to post a comment.