ANNOUNCE: checkpoint release 0.97.0d20070918 is now available
Gary Oberbrunner <[email protected]> Tue, 18 Sep 2007 20:59:52 -0400
| Newsgroups | gmane.comp.programming.tools.scons.announce |
|---|---|
| Message-ID | <46F07488.9050608__18551.7115206041$1190167934$gmane$org@oberbrunner.com> |
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.