On Windows, fix the line endings of the files unpacked in the build\{test-local-zip...
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 11 Feb 2006 23:41:34 +0000 (23:41 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 11 Feb 2006 23:41:34 +0000 (23:41 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1416 fdb21ef1-2011-0410-befe-b5e4ea1792b1

README
SConstruct
src/CHANGES.txt
src/RELEASE.txt

diff --git a/README b/README
index e178bc298a05fe6cb8117b5b436db04ed35d47e4..5a5aeb7a92e1c971967321370834a0da16ced89a 100644 (file)
--- a/README
+++ b/README
@@ -247,10 +247,16 @@ you can build everything by simply running it:
         $ scons
 
 If you don't have SCons version 0.96 or later already installed on your
-system, you can build this version of SCons with itself with a little
-more typing:
+system, you can build this version of SCons with itself with a little more
+typing.  On UNIX or Linux (using sh or a derivative like bash or ksh):
 
-        $ SCONS_LIB_DIR=`pwd`/src/engine python src/script/scons.py
+        $ export SCONS_LIB_DIR=`pwd`/src/engine
+        $ python src/script/scons.py
+
+On Windows:
+        
+        C:\scons\>set SCONS_LIB_DIR=%cd%\src\engine
+        C:\scons\>python src/script/scons.py
 
 Depending on the utilities installed on your system, any or all of the
 following packages will be built:
index 7dfc9354dcbe97ae4a0ee0fc8913015c289441c8..067e757306214f7e26e46b1e44e133ea5088afb3 100644 (file)
@@ -214,7 +214,7 @@ try:
             if os.path.isfile(dest) or os.path.islink(dest):
                 os.unlink(dest)
             if not os.path.isdir(dest):
-                open(dest, 'w').write(zf.read(name))
+                open(dest, 'wb').write(zf.read(name))
 
 except:
     if unzip and zip:
index d221061e802b8d36e2bf362a18761960abf3796c..754768df20e45197f164b0f073e0e49245529969 100644 (file)
@@ -12,67 +12,437 @@ RELEASE 0.97 - XXX
 
   From Anonymous:
 
-  - Fix Java parsing to avoid erroneously identifying a new array
-    of class instances as an anonymous inner class.
+  - Fix the intelc.py Tool module to not throw an exception if the
+    only installed version is something other than ia32.
+
+  - Set $CCVERSION when using gcc.
+
+  From Matthias:
+
+  - Support generating project and solution files for Microsoft
+    Visual Studio version 8.
+
+  - Support generating more than one project file for a Microsoft
+    Visual Studio solution file.
+
+  From Erling Andersen:
+
+  - Fix interpretation of Node.FS objects wrapped in Proxy instances,
+    allowing expansion of things like ${File(TARGET)} in command lines.
+
+  From Stanislav Baranov:
+
+  - Add a separate MSVSSolution() Builder, with support for the
+    following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM,
+    $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM,
+    $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM.
+
+  From Ralph W. Grosse-Kunstleve and Patrick Mezard:
+
+  - Remove unneceesary (and incorrect) SCons.Util strings on some function
+    calls in SCons.Util.
+
+  From Bob Halley:
+
+  - Fix C/C++ compiler selection on AIX to not always use the external $CC
+    environment variable.
+
+  From August Hörandl:
+
+  - Add a scanner for \include and \import files, with support for
+    searching a directory list in $TEXINPUTS (imported from the external
+    environment).
+
+  - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and
+    $MAKEINDEXFLAGS for generating indices from .idx files.
+
+  From Steven Knight:
+
+  - Check for whether files exist on disk by listing the directory
+    contents, not calling os.path.exists() file by file.  This is
+    somewhat more efficient in general, and may be significantly
+    more efficient on Windows.
+
+  - Minor speedups in the internal is_Dict(), is_List() and is_String()
+    functions.
+
+  - Fix a signature refactoring bug that caused Qt header files to
+    get re-generated every time.
+
+  - Don't fail when writing signatures if the .sconsign.dblite file is
+    owned by a different user (e.g. root) from a previous run.
+
+  - When deleting variables from stacked OverrideEnvironments, don't
+    throw a KeyError if we were able to delte the variable from any
+    Environment in the stack.
+
+  - Get rid of the last indentation tabs in the SCons source files and
+    add -tt to the Python invocations in the packaging build and the
+    tests so they don't creep back in.
+
+  - In Visual Studio project files, put quotes around the -C directory
+    so everything works even if the path has spaces in it.
+
+  - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
+    when building object files on Windows.  Have the the ifort Tool
+    modify the default command lines appropriately.
+
+  - Document the --debug=explain option in the man page.  (How did we
+    miss this?)
+
+  - Add a $LATEXRETRIES variable to allow configuration of the number of
+    times LaTex can be re-called to try to resolve undefined references.
+
+  - Change the order of the arguments to Configure.Checklib() to match
+    the documentation.
+
+  - Handle signature calculation properly when the Python function used
+    for a FunctionAction is an object method.
+
+  - On Windows, assume that absolute path names without a drive letter
+    refer to the drive on which the SConstruct file lives.
+
+  - Add /usr/ccs/bin to the end of the the default external execution
+    PATH on Solaris.
+
+  - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
+    for the SunPRO C++ compiler.  Make the default value for $PKGCHK
+    be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
+    execution $PATH).
+
+  - Fix a man page example of overriding variables when calling
+    SharedLibrary() to also set the $LIBSUFFIXES variable.
+
+  - Add a --taskmastertrace=FILE option to give some insight on how
+    the taskmaster decides what Node to build next.
+
+  - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
+    $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
+    new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
+    $WINDOWSIMPLIBPREFIX construction variables.  The old names are now
+    deprecated, but preserved for backwards compatibility.
+
+  From Chen Lee:
+
+  - Add x64 support for Microsoft Visual Studio 8.
+
+  From Christian Maaser:
+
+  - Add support for Visual Studio Express Editions.
+
+  - Add support for Visual Studio 8 *.manifest files, includng
+    new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
+    $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
+    $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
+    construction variables.
+
+  From Sanjoy Mahajan:
+
+  - Correct TeX-related command lines to just $SOURCE, not $SOURCES
+
+  From Patrick Mezard:
+
+  - Execute build commands for a command-line target if any of the
+    files built along with the target is out of date or non-existent,
+    not just if the command-line target itself is out of date.
+
+  - Fix the -n option when used with -c to print all of the targets
+    that will be removed for a multi-target Builder call.
+
+  - If there's no file in the source directory, make sure there isn't
+    one in the build directory, too, to avoid dangling files left
+    over from previous runs when a source file is removed.
+
+  - Allow AppendUnique() and PrependUnique() to append strings (and
+    other atomic objects) to lists.
+
+  From Joel B. Mohler:
+
+  - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building
+    from both TeX and LaTeX files uses the same logic to call $BIBTEX
+    when it's necessary, to call $MAKEINDEX when it's necessary, and to
+    call $TEX or $LATEX multiple times to handle undefined references.
+
+  - Add an emitter to the various TeX builders so that the generated
+    .aux and .log files also get deleted by the -c option.
+
+  From Leanid Nazdrynau:
+
+  - Fix the Qt UIC scanner to work with generated .ui files (by using
+    the FindFile() function instead of checking by-hand for the file).
+
+  From Jan Nieuwenhuizen:
+
+  - Fix a problem with interpreting quoted argument lists on command lines.
+
+  From Greg Noel:
+
+  - Add /sw/bin to the default execution PATH on Mac OS X.
+
+  From Kian Win Ong:
+
+  - When building a .jar file and there is a $JARCHDIR, put the -C
+    in front of each .class file on the command line.
+
+  - Recognize the Java 1.5 enum keyword.
+
+  From Asfand Yar Qazi:
+
+  - Add /opt/bin to the default execution PATH on all POSIX platforms
+    (between /usr/local/bin and /bin).
+
+  From Jon Rafkind:
+
+  - Fix the use of Configure() contexts from nested subsidiary
+    SConscript files.
+
+  From Christoph Schulz:
+
+  - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control
+    the directory and logs for configuration tests.
+
+  - Add support for a $INSTALLSTR variable.
+
+  - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes
+    a bug when setting $ARCOMSTR).
+
+  From Amir Szekely:
+
+  - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW.
+
+  From Dobes Vandermeer:
+
+  - Add support for SCC and other settings in Microsoft Visual
+    Studio project and solution files:  $MSVS_PROJECT_BASE_PATH,
+    $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
+    $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
+
+  - Add support for using a $SCONS_HOME variable (imported from the
+    external environment, or settable internally) to put a shortened
+    SCons execution line in the Visual Studio project file.
+
+
+
+
+RELEASE 0.96.91 - Thu, 08 Sep 2005 07:18:23 -0400
+
+  NOTE:  This was a pre-release of 0.97 for testing purposes.
+
+  From Chad Austin:
+
+  - Have the environment store the toolpath and re-use it to find Tools
+    modules during later Copy() or Tool() calls (unless overridden).
+
+  - Normalize the directory path names in SConsignFile() database
+    files so the same signature file can interoperate on Windows and
+    non-Windows systems.
+
+  - Make --debug=stacktrace print a stacktrace when a UserError is thrown.
+
+  - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py.
+
+  From Stanislav Baranov:
+
+  - Make it possible to support with custom Alias (sub-)classes.
+
+  - Allow Builders to take empty source lists when called.
+
+  - Allow access to both TARGET and SOURCE in $*PATH expansions.
+
+  - Allow SConscript files to modify BUILD_TARGETS.
+
+  From Timothee Besset:
+
+  - Add support for Objective C/C++ .m and .mm file suffixes (for
+    Mac OS X).
+
+  From Charles Crain
+
+  - Fix the PharLap linkloc.py module to use target+source arguments
+    when calling env.subst().
+
+  From Bjorn Eriksson:
+
+  - Fix an incorrect Command() keyword argument in the man page.
+
+  - Add a $TEMPFILEPREFIX variable to control the prefix or flag used
+    to pass a long-command-line-execution tempfile to a command.
+
+  From Steven Knight:
+
+  - Enhanced the SCons setup.py script to install man pages on
+    UNIX/Linux systems.
+
+  - Add support for an Options.FormatOptionHelpText() method that can
+    be overridden to customize the format of Options help text.
+
+  - Add a global name for the Entry class (which had already been
+    documented).
+
+  - Fix re-scanning of generated source files for implicit dependencies
+    when the -j option is used.
+
+  - Fix a dependency problem that caused $LIBS scans to not be added
+    to all of the targets in a multiple-target builder call, which
+    could cause out-of-order builds when the -j option is used.
+
+  - Store the paths of source files and dependencies in the .sconsign*
+    file(s) relative to the target's directory, not relative to the
+    top-level SConstruct directory.  This starts to make it possible to
+    subdivide the dependency tree arbitrarily by putting an SConstruct
+    file in every directory and using content signatures.
+
+  - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables
+    that accomodate parser generators that write header files to a
+    different suffix than the hard-coded .hpp when the -d option is used.
+
+  - The default behavior is now to store signature information in a
+    single .sconsign.dblite file in the top-level SConstruct directory.
+    The old behavior of a separate .sconsign file in each directory can
+    be specified by calling SConsignFile(None).
+
+  - Remove line number byte codes within the signature calculation
+    of Python function actions, so that changing the location of an
+    otherwise unmodified Python function doesn't cause rebuilds.
+
+  - Fix AddPreAction() and AddPostAction() when an action has more than
+    one target file:  attach the actions to the Executor, not the Node.
+
+  - Allow the source directory of a BuildDir / build_dir to be outside
+    of the top-level SConstruct directory tree.
+
+  - Add a --debug=nomemoizer option that disables the Memoizer for clearer
+    looks at the counts and profiles of the underlying function calls,
+    not the Memoizer wrappers.
+
+  - Print various --debug= stats even if we exit early (e.g. using -h).
+
+  - Really only use the cached content signature value if the file
+    is older than --max-drift, not just if --max-drift is set.
+
+  - Remove support for conversion from old (pre 0.96) .sconsign formats.
+
+  - Add support for a --diskcheck option to enable or disable various
+    on-disk checks:  that File and Dir nodes match on-disk entries;
+    whether an RCS file exists for a missing source file; whether an
+    SCCS file exists for a missing source file.
+
+  - Add a --raw argument to the sconsign script, so it can print a
+    raw representation of each entry's NodeInfo dictionary.
+
+  - Add the 'f90' and 'f95' tools to the list of Fortran compilers
+    searched for by default.
+
+  - Add the +Z option by default when compiling shared objects on
+    HP-UX.
+
+  From Chen Lee:
+
+  - Handle Visual Studio project and solution files in Unicode.
+
+  From Sanjoy Mahajan:
+
+  - Fix a bad use of Copy() in an example in the man page, and a
+    bad regular expression example in the man page and User's Guide.
+
+  From Shannon Mann:
+
+  - Have the Visual Studio project file(s) echo "Starting SCons" before
+    executing SCons, mainly to work around a quote-stripping bug in
+    (some versions of?) the Windows cmd command executor.
+
+  From Georg Mischler:
+
+  - Remove the space after the -o option when invoking the Borland
+    BCC compiler; some versions apparently require that the file name
+    argument be concatenated with the option.
+
+  From Leanid Nazdrynau:
+
+  - Fix the Java parser's handling of backslashes in strings.
+
+  From Greg Noel:
+
+  - Add construction variables to support frameworks on Mac OS X:
+    $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX.
+
+  - Re-order link lines so the -o option always comes right after the
+    command name.
+
+  From Gary Oberbrunner:
+
+  - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions).
+
+  - Document the new $FRAMEWORK* variables for Mac OS X.
+
+  From Karol Pietrzak:
+
+  - Add $RPATH (-R) support to the Sun linker Tool (sunlink).
+
+  - Add a description of env.subst() to the man page.
 
-  - Fix a typo in the man page description of PathIsDirCreate.
+  From Chris Prince:
 
-  - Fix the intelc.py Tool module to not throw an exception if the
-    only installed version is something other than ia32.
+  - Look in the right directory, not always the local directory, for a
+    same-named file or directory conflict on disk.
 
-  - Set $CCVERSION when using gcc.
+  - On Windows, preserve the external environment's %SYSTEMDRIVE%
+    variable, too.
 
-  From Matthias:
+  From Craig Scott:
 
-  - Support generating project and solution files for Microsoft
-    Visual Studio version 8.
+  - Have the Fortran module emitter look for Fortan modules to be created
+    relative to $FORTRANMODDIR, not the top-level directory.
 
-  - Support generating more than one project file for a Microsoft
-    Visual Studio solution file.
+  - When saving Options to a file, run default values through the
+    converter before comparing them with the set values.  This correctly
+    suppresses Boolean Option values from getting written to the saved
+    file when they're one of the many synonyms for a default True or
+    False value.
 
-  From Erling Andersen:
+  - Fix the Fortran Scanner's ability to handle a module being used
+    in the same file in which it is defined.
 
-  - Fix interpretation of Node.FS objects wrapped in Proxy instances,
-    allowing expansion of things like ${File(TARGET)} in command lines.
+  From Steve-o:
 
-  From Chad Austin:
+  - Add the -KPIC option by default when compiling shared objects on
+    Solaris.
 
-  - Allow Help() to be called multiple times, appending to the help
-    text each call.
+  - Change the default suffix for Solaris objects to .o, to conform to
+    Sun WorkShop's expectations.  Change the profix to so_ so they can
+    still be differentiated from static objects in the same directory.
 
-  - Allow Tools found on a toolpath to import Python modules from
-    their local directory.
+  From Amir Szekely:
 
-  - Have the environment store the toolpath and re-use it to find Tools
-    modules during later Copy() or Tool() calls (unless overridden).
+  - When calling the resource compiler on MinGW, add --include-dir and
+    the source directory so it finds the source file.
 
-  - Normalize the directory path names in SConsignFile() database
-    files so the same signature file can interoperate on Windows and
-    non-Windows systems.
+  - Update EnsureSConsVersion() to support revision numbers.
 
-  - Make --debug=stacktrace print a stacktrace when a UserError is thrown.
+  From Greg Ward:
 
-  - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py.
+  - Fix a misplaced line in the man page.
 
-  From Stanislav Baranov:
 
-  - Make it possible to support with custom Alias (sub-)classes.
 
-  - Allow Builders to take empty source lists when called.
+RELEASE 0.96.90 - Tue, 15 Feb 2005 21:21:12 +0000
 
-  - Allow access to both TARGET and SOURCE in $*PATH expansions.
+  NOTE:  This was a pre-release of 0.97 for testing purposes.
 
-  - Allow SConscript files to modify BUILD_TARGETS.
+  From Anonymous:
 
-  - Add a separate MSVSSolution() Builder, with support for the
-    following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM,
-    $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM,
-    $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM.
+  - Fix Java parsing to avoid erroneously identifying a new array
+    of class instances as an anonymous inner class.
 
-  From Timothee Besset:
+  - Fix a typo in the man page description of PathIsDirCreate.
 
-  - Add support for Objective C/C++ .m and .mm file suffixes (for
-    Mac OS X).
+  From Chad Austin:
+
+  - Allow Help() to be called multiple times, appending to the help
+    text each call.
+
+  - Allow Tools found on a toolpath to import Python modules from
+    their local directory.
 
   From Steve Christensen:
 
@@ -81,22 +451,10 @@ RELEASE 0.97 - XXX
   - Add a set of canned PathOption validators:  PathExists (the default),
     PathIsFile, PathIsDir and PathIsDirCreate.
 
-  Charles Crain
-
-  - Fix the PharLap linkloc.py module to use target+source arguments
-    when calling env.subst().
-
   From Matthew Doar:
 
   - Add support for .lex and .yacc file suffixes for Lex and Yacc files.
 
-  From Bjorn Eriksson:
-
-  - Fix an incorrect Command() keyword argument in the man page.
-
-  - Add a $TEMPFILEPREFIX variable to control the prefix or flag used
-    to pass a long-command-line-execution tempfile to a command.
-
   From Eric Frias:
 
   - Huge performance improvement:  wrap the tuples representing an
@@ -109,25 +467,6 @@ RELEASE 0.97 - XXX
     check for the build engine in the parent directory of the Python
     library directory (/usr/lib64 instead of /usr/lib).
 
-  From Ralph W. Grosse-Kunstleve and Patrick Mezard:
-
-  - Remove unneceesary (and incorrect) SCons.Util strings on some function
-    calls in SCons.Util.
-
-  From Bob Halley:
-
-  - Fix C/C++ compiler selection on AIX to not always use the external $CC
-    environment variable.
-
-  From August Hörandl:
-
-  - Add a scanner for \include and \import files, with support for
-    searching a directory list in $TEXINPUTS (imported from the external
-    environment).
-
-  - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and
-    $MAKEINDEXFLAGS for generating indices from .idx files.
-
   From Stephen Kennedy:
 
   - Speed up writing the .sconsign file at the end of a run by only
@@ -228,210 +567,74 @@ RELEASE 0.97 - XXX
     $QT_UICCOMSTR, $RCCOMSTR, $REGSVRCOMSTR, $RCS_COCOMSTR, $RMICCOMSTR,
     $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR, $SHF90COMSTR,
     $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR, $SWIGCOMSTR,
-    $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
-
-  - Add an optional "map" keyword argument to ListOption() that takes a
-    dictionary to map user-specified values to legal values from the list
-    (like EnumOption() already doee).
-
-  - Add specific exceptions to try:-except: blocks without any listed,
-    so that they won't catch and mask keyboard interrupts.
-
-  - Make --debug={tree,dtree,stree} print something even when there's
-    a build failure.
-
-  - Fix how Scanners sort the found dependencies so that it doesn't
-    matter whether the dependency file is in a Repository or not.
-    This may cause recompilations upon upgrade to this version.
-
-  - Make AlwaysBuild() work with Alias and Python value Nodes (making
-    it much simpler to support aliases like "clean" that just invoke
-    an arbitrary action).
-
-  - Have env.ParseConfig() use AppendUnique() by default to suppress
-    duplicate entries from multiple calls.  Add a "unique" keyword
-    argument to allow the old behavior to be specified.
-
-  - Allow the library modules imported by an SConscript file to get at
-    all of the normally-available global functions and variables by saying
-    "from SCons.Script import *".
-
-  - Add a --debug=memoizer option to print Memoizer hit/mass statistics.
-
-  - Allow more than one --debug= option to be set at a time.
-
-  - Change --debug=count to report object counts before and after
-    reading SConscript files and before and after building targets.
-
-  - Change --debug=memory output to line up the numbers and to better
-    match (more or less) the headers on the --debug=count columns.
-
-  - Speed things up when there are lists of targets and/or sources by
-    getting rid of some N^2 walks of the lists involved.
-
-  - Cache evaluation of LazyActions so we don't create a new object
-    for each invocation.
-
-  - When scanning, don't create Nodes for include files that don't
-    actually exist on disk.
-
-  - Make supported global variables CScanner, DScanner, ProgramScanner and
-    SourceFileScanner.  Make SourceFileScanner.add_scanner() a supported
-    part of the public interface.  Keep the old SCons.Defaults.*Scan names
-    around for a while longer since some people were already using them.
-
-  - By default, don't scan directories for on-disk files.  Add a
-    DirScanner global scanner that can be used in Builders or Command()
-    calls that want source directory trees scanned for on-disk changes.
-    Have the Tar() and Zip() Builders use the new DirScanner to preserve
-    the behavior of rebuilding a .tar or .zip file if any file or
-    directory under a source tree changes.  Add Command() support for
-    a source_scanner keyword argument to Command() that can be set to
-    DirScanner to get this behavior.
-
-  - Documentation changes:  Explain that $CXXFLAGS contains $CCFLAGS
-    by default.  Fix a bad target_factory example in the man page.
-    Add appendices to the User's Guide to cover the available Tools,
-    Builders and construction variables.  Comment out the build of
-    the old Python 10 paper, which doesn't build on all systems and
-    is old enough at this point that it probably isn't worth the
-    effort to make it do so.
-
-  - Enhanced the SCons setup.py script to install man pages on
-    UNIX/Linux systems.
-
-  - Add support for an Options.FormatOptionHelpText() method that can
-    be overridden to customize the format of Options help text.
-
-  - Add a global name for the Entry class (which had already been
-    documented).
-
-  - Fix re-scanning of generated source files for implicit dependencies
-    when the -j option is used.
-
-  - Fix a dependency problem that caused $LIBS scans to not be added
-    to all of the targets in a multiple-target builder call, which
-    could cause out-of-order builds when the -j option is used.
-
-  - Store the paths of source files and dependencies in the .sconsign*
-    file(s) relative to the target's directory, not relative to the
-    top-level SConstruct directory.  This starts to make it possible to
-    subdivide the dependency tree arbitrarily by putting an SConstruct
-    file in every directory and using content signatures.
-
-  - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables
-    that accomodate parser generators that write header files to a
-    different suffix than the hard-coded .hpp when the -d option is used.
-
-  - The default behavior is now to store signature information in a
-    single .sconsign.dblite file in the top-level SConstruct directory.
-    The old behavior of a separate .sconsign file in each directory can
-    be specified by calling SConsignFile(None).
-
-  - Remove line number byte codes within the signature calculation
-    of Python function actions, so that changing the location of an
-    otherwise unmodified Python function doesn't cause rebuilds.
-
-  - Fix AddPreAction() and AddPostAction() when an action has more than
-    one target file:  attach the actions to the Executor, not the Node.
-
-  - Allow the source directory of a BuildDir / build_dir to be outside
-    of the top-level SConstruct directory tree.
-
-  - Add a --debug=nomemoizer option that disables the Memoizer for clearer
-    looks at the counts and profiles of the underlying function calls,
-    not the Memoizer wrappers.
-
-  - Print various --debug= stats even if we exit early (e.g. using -h).
-
-  - Really only use the cached content signature value if the file
-    is older than --max-drift, not just if --max-drift is set.
-
-  - Remove support for conversion from old (pre 0.96) .sconsign formats.
-
-  - Add support for a --diskcheck option to enable or disable various
-    on-disk checks:  that File and Dir nodes match on-disk entries;
-    whether an RCS file exists for a missing source file; whether an
-    SCCS file exists for a missing source file.
-
-  - Add a --raw argument to the sconsign script, so it can print a
-    raw representation of each entry's NodeInfo dictionary.
-
-  - Add the 'f90' and 'f95' tools to the list of Fortran compilers
-    searched for by default.
-
-  - Add the +Z option by default when compiling shared objects on
-    HP-UX.
-
-  - Check for whether files exist on disk by listing the directory
-    contents, not calling os.path.exists() file by file.  This is
-    somewhat more efficient in general, and may be significantly
-    more efficient on Windows.
-
-  - Minor speedups in the internal is_Dict(), is_List() and is_String()
-    functions.
-
-  - Fix a signature refactoring bug that caused Qt header files to
-    get re-generated every time.
-
-  - Don't fail when writing signatures if the .sconsign.dblite file is
-    owned by a different user (e.g. root) from a previous run.
-
-  - When deleting variables from stacked OverrideEnvironments, don't
-    throw a KeyError if we were able to delte the variable from any
-    Environment in the stack.
+    $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
 
-  - Get rid of the last indentation tabs in the SCons source files and
-    add -tt to the Python invocations in the packaging build and the
-    tests so they don't creep back in.
+  - Add an optional "map" keyword argument to ListOption() that takes a
+    dictionary to map user-specified values to legal values from the list
+    (like EnumOption() already doee).
 
-  - In Visual Studio project files, put quotes around the -C directory
-    so everything works even if the path has spaces in it.
+  - Add specific exceptions to try:-except: blocks without any listed,
+    so that they won't catch and mask keyboard interrupts.
 
-  - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
-    when building object files on Windows.  Have the the ifort Tool
-    modify the default command lines appropriately.
+  - Make --debug={tree,dtree,stree} print something even when there's
+    a build failure.
 
-  - Document the --debug=explain option in the man page.  (How did we
-    miss this?)
+  - Fix how Scanners sort the found dependencies so that it doesn't
+    matter whether the dependency file is in a Repository or not.
+    This may cause recompilations upon upgrade to this version.
 
-  - Add a $LATEXRETRIES variable to allow configuration of the number of
-    times LaTex can be re-called to try to resolve undefined references.
+  - Make AlwaysBuild() work with Alias and Python value Nodes (making
+    it much simpler to support aliases like "clean" that just invoke
+    an arbitrary action).
 
-  - Change the order of the arguments to Configure.Checklib() to match
-    the documentation.
+  - Have env.ParseConfig() use AppendUnique() by default to suppress
+    duplicate entries from multiple calls.  Add a "unique" keyword
+    argument to allow the old behavior to be specified.
 
-  - Handle signature calculation properly when the Python function used
-    for a FunctionAction is an object method.
+  - Allow the library modules imported by an SConscript file to get at
+    all of the normally-available global functions and variables by saying
+    "from SCons.Script import *".
 
-  - On Windows, assume that absolute path names without a drive letter
-    refer to the drive on which the SConstruct file lives.
+  - Add a --debug=memoizer option to print Memoizer hit/mass statistics.
 
-  - Add /usr/ccs/bin to the end of the the default external execution
-    PATH on Solaris.
+  - Allow more than one --debug= option to be set at a time.
 
-  - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
-    for the SunPRO C++ compiler.  Make the default value for $PKGCHK
-    be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
-    execution $PATH).
+  - Change --debug=count to report object counts before and after
+    reading SConscript files and before and after building targets.
 
-  - Fix a man page example of overriding variables when calling
-    SharedLibrary() to also set the $LIBSUFFIXES variable.
+  - Change --debug=memory output to line up the numbers and to better
+    match (more or less) the headers on the --debug=count columns.
 
-  - Add a --taskmastertrace=FILE option to give some insight on how
-    the taskmaster decides what Node to build next.
+  - Speed things up when there are lists of targets and/or sources by
+    getting rid of some N^2 walks of the lists involved.
 
-  - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
-    $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
-    new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
-    $WINDOWSIMPLIBPREFIX construction variables.  The old names are now
-    deprecated, but preserved for backwards compatibility.
+  - Cache evaluation of LazyActions so we don't create a new object
+    for each invocation.
 
-  From Chen Lee:
+  - When scanning, don't create Nodes for include files that don't
+    actually exist on disk.
 
-  - Handle Visual Studio project and solution files in Unicode.
+  - Make supported global variables CScanner, DScanner, ProgramScanner and
+    SourceFileScanner.  Make SourceFileScanner.add_scanner() a supported
+    part of the public interface.  Keep the old SCons.Defaults.*Scan names
+    around for a while longer since some people were already using them.
 
-  - Add x64 support for Microsoft Visual Studio 8.
+  - By default, don't scan directories for on-disk files.  Add a
+    DirScanner global scanner that can be used in Builders or Command()
+    calls that want source directory trees scanned for on-disk changes.
+    Have the Tar() and Zip() Builders use the new DirScanner to preserve
+    the behavior of rebuilding a .tar or .zip file if any file or
+    directory under a source tree changes.  Add Command() support for
+    a source_scanner keyword argument to Command() that can be set to
+    DirScanner to get this behavior.
+
+  - Documentation changes:  Explain that $CXXFLAGS contains $CCFLAGS
+    by default.  Fix a bad target_factory example in the man page.
+    Add appendices to the User's Guide to cover the available Tools,
+    Builders and construction variables.  Comment out the build of
+    the old Python 10 paper, which doesn't build on all systems and
+    is old enough at this point that it probably isn't worth the
+    effort to make it do so.
 
   From Wayne Lee:
 
@@ -443,29 +646,6 @@ RELEASE 0.97 - XXX
   - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and
     $CCFLAGS, and -mwindows to $LINKFLAGS.
 
-  From Christian Maaser:
-
-  - Add support for Visual Studio Express Editions.
-
-  - Add support for Visual Studio 8 *.manifest files, includng
-    new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
-    $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
-    $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
-    construction variables.
-
-  From Sanjoy Mahajan:
-
-  - Correct TeX-related command lines to just $SOURCE, not $SOURCES
-
-  - Fix a bad use of Copy() in an example in the man page, and a
-    bad regular expression example in the man page and User's Guide.
-
-  From Shannon Mann:
-
-  - Have the Visual Studio project file(s) echo "Starting SCons" before
-    executing SCons, mainly to work around a quote-stripping bug in
-    (some versions of?) the Windows cmd command executor.
-
   From Michael McCracken:
 
   - Add a new "applelink" tool to handle the things like Frameworks and
@@ -479,38 +659,6 @@ RELEASE 0.97 - XXX
 
   - Improve SWIG tests for use on Mac OS X (Darwin).
 
-  From Patrick Mezard:
-
-  - Execute build commands for a command-line target if any of the
-    files built along with the target is out of date or non-existent,
-    not just if the command-line target itself is out of date.
-
-  - Fix the -n option when used with -c to print all of the targets
-    that will be removed for a multi-target Builder call.
-
-  - If there's no file in the source directory, make sure there isn't
-    one in the build directory, too, to avoid dangling files left
-    over from previous runs when a source file is removed.
-
-  - Allow AppendUnique() and PrependUnique() to append strings (and
-    other atomic objects) to lists.
-
-  From Georg Mischler:
-
-  - Remove the space after the -o option when invoking the Borland
-    BCC compiler; some versions apparently require that the file name
-    argument be concatenated with the option.
-
-  From Joel B. Mohler:
-
-  - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building
-    from both TeX and LaTeX files uses the same logic to call $BIBTEX
-    when it's necessary, to call $MAKEINDEX when it's necessary, and to
-    call $TEX or $LATEX multiple times to handle undefined references.
-
-  - Add an emitter to the various TeX builders so that the generated
-    .aux and .log files also get deleted by the -c option.
-
   From Elliot Murphy:
 
   - Enhance the tests to guarantee persistence of ListOption
@@ -518,13 +666,6 @@ RELEASE 0.97 - XXX
 
   - Supply the help text when -h is used with the -u, -U or -D options.
 
-  From Leanid Nazdrynau:
-
-  - Fix the Java parser's handling of backslashes in strings.
-
-  - Fix the Qt UIC scanner to work with generated .ui files (by using
-    the FindFile() function instead of checking by-hand for the file).
-
   From Christian Neeb:
 
   - Fix the Java parser's handling of string definitions to avoid ignoring
@@ -537,20 +678,6 @@ RELEASE 0.97 - XXX
     value directory; avoiding slowing substitution logic when there's no
     '$' in the string.
 
-  From Jan Nieuwenhuizen:
-
-  - Fix a problem with interpreting quoted argument lists on command lines.
-
-  From Greg Noel:
-
-  - Add construction variables to support frameworks on Mac OS X:
-    $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX.
-
-  - Re-order link lines so the -o option always comes right after the
-    command name.
-
-  - Add /sw/bin to the default execution PATH on Mac OS X.
-
   From Gary Oberbrunner:
 
   - Add an Environment.Dump() method to print the contents of a
@@ -599,41 +726,11 @@ RELEASE 0.97 - XXX
   - Documentation changes:  Update the man page to describe use of
     filenames or Nodes in $LIBS.
 
-  - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions).
-
-  - Document the new $FRAMEWORK* variables for Mac OS X.
-
-  From Kian Win Ong:
-
-  - When building a .jar file and there is a $JARCHDIR, put the -C
-    in front of each .class file on the command line.
-
-  - Recognize the Java 1.5 enum keyword.
-
   From Chris Pawling:
 
   - Have the linkloc tool use $MSVS_VERSION to select the Microsoft
     Visual Studio version to use.
 
-  From Karol Pietrzak:
-
-  - Add $RPATH (-R) support to the Sun linker Tool (sunlink).
-
-  - Add a description of env.subst() to the man page.
-
-  From Chris Prince:
-
-  - Look in the right directory, not always the local directory, for a
-    same-named file or directory conflict on disk.
-
-  - On Windows, preserve the external environment's %SYSTEMDRIVE%
-    variable, too.
-
-  From Asfand Yar Qazi:
-
-  - Add /opt/bin to the default execution PATH on all POSIX platforms
-    (between /usr/local/bin and /bin).
-
   From Kevin Quick:
 
   - Fix the Builder name returned from ListBuilders and other instances
@@ -754,35 +851,6 @@ RELEASE 0.97 - XXX
   - Add a PathAccept validator to the list of new canned PathOption
     validators.
 
-  From Jon Rafkind:
-
-  - Fix the use of Configure() contexts from nested subsidiary
-    SConscript files.
-
-  From Christoph Schulz:
-
-  - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control
-    the directory and logs for configuration tests.
-
-  - Add support for a $INSTALLSTR variable.
-
-  - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes
-    a bug when setting $ARCOMSTR).
-
-  From Craig Scott:
-
-  - Have the Fortran module emitter look for Fortan modules to be created
-    relative to $FORTRANMODDIR, not the top-level directory.
-
-  - When saving Options to a file, run default values through the
-    converter before comparing them with the set values.  This correctly
-    suppresses Boolean Option values from getting written to the saved
-    file when they're one of the many synonyms for a default True or
-    False value.
-
-  - Fix the Fortran Scanner's ability to handle a module being used
-    in the same file in which it is defined.
-
   From Jeff Squyres:
 
   - Documentation changes:  Use $CPPDEFINES instead of $CCFLAGS in man
@@ -792,39 +860,6 @@ RELEASE 0.97 - XXX
 
   - Allow $JARCHDIR to be expanded to other construction variables.
 
-  From Steve-o:
-
-  - Add the -KPIC option by default when compiling shared objects on
-    Solaris.
-
-  - Change the default suffix for Solaris objects to .o, to conform to
-    Sun WorkShop's expectations.  Change the profix to so_ so they can
-    still be differentiated from static objects in the same directory.
-
-  From Amir Szekely:
-
-  - When calling the resource compiler on MinGW, add --include-dir and
-    the source directory so it finds the source file.
-
-  - Update EnsureSConsVersion() to support revision numbers.
-
-  - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW.
-
-  From Dobes Vandermeer:
-
-  - Add support for SCC and other settings in Microsoft Visual
-    Studio project and solution files:  $MSVS_PROJECT_BASE_PATH,
-    $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
-    $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
-
-  - Add support for using a $SCONS_HOME variable (imported from the
-    external environment, or settable internally) to put a shortened
-    SCons execution line in the Visual Studio project file.
-
-  From Greg Ward:
-
-  - Fix a misplaced line in the man page.
-
   From Christoph Wiedemann:
 
   - Add an Environment.SetDefault() method that only sets values if
@@ -884,7 +919,7 @@ RELEASE 0.97 - XXX
 
 
 
-RELEASE 0.96.1 - XXX
+RELEASE 0.96.1 - Mon, 23 Aug 2004 12:55:50 +0000
 
   From Craig Bachelor:
 
index 5f7fa2625842cf9f3f685b5bd96ebbdea342bab3..aefe6ea6bed2a3a2ca3c9d22bbf4821d14515132 100644 (file)
@@ -20,43 +20,83 @@ more effectively, please sign up for the scons-users mailing list at:
 
 
 
-RELEASE 0.97 - XXX
+RELEASE 0.96.92 - XXX
 
   This is a pre-release for testing the eighth beta release of SCons.
   Please consult the CHANGES.txt file for a list of specific changes
   since last release.
 
-  Please note the following important changes since release 0.96:
+  Please note the following important changes since release 0.96.91:
 
-    --  DIRECTORY TREES ARE NO LONGER AUTOMATICALLY SCANNED FOR CHANGES
+    --  /opt/bin AND /sw/bin ADDED TO DEFAULT EXECUTION PATH VARIABLES
 
-        Custom builders and Command() calls that accept directories as
-        source arguments no longer scan entire on-disk directory trees by
-        default.  This means that their targets will not be automatically
-        rebuilt if a file changes on disk *unless* SCons already knows
-        about the file from a specific Builder or File() call.  Note that
-        the targets will still be rebuilt correctly if a file changes
-        that SCons already knows about due to a Builder or other call.
+        On all POSIX systems, the default execution PATH variable has had
+        the /opt/bin directory added after the /usr/local/bin directory
+        and before /bin and /usr/bin directories.  This may cause SCons
+        to find and/or different compilers, linkers, etc. if you have
+        any same-named utilities installed in /opt/bin that it previously
+        found in /bin or /usr/bin.
 
-        The existing behavior of scanning on-disk directory trees for
-        any changed file can be maintained by passing the new DirScanner
-        global directory scanner as the source_scanner keyword argument
-        to the Builder call:
+        On Mac OS X (Darwin) systems, the /sw/bin directory has been added
+        to the end of the default execution PATH.  This may cause SCons
+        to find compilers, linkers and other utilities it previously did
+        not, although it should not otherwise change existing behavior.
 
-            bld = Builder("build < $SOURCE > $TARGET",
-                          source_scanner = DirScanner)
+    --  Configure.Checklib() ARGUMENTS HAVE CHANGED TO MATCH DOCUMENTATION
 
-        The same keyword argument can also be supplied to any Command()
-        calls that need to scan directory trees on-disk for changed files:
+        The order of the arguments to the Configure.CheckLib() function
+        has changed to put the "autoadd" keyword argument last, matching
+        the documentation in the man page.  This could cause problems
+        for any calls to Configure.Checklib() that were relying on the
+        order of the arguments.  Specifying all arguments as keyword
+        arguments will work on both older and newer versions of SCons.
 
-            env.Command("archive.out", "directory",
-                        "archiver -o $TARGET $SOURCE",
-                        source_scanner = DirScanner)
+    --  env.subst() NO LONGER EXPANDS $TARGET, $SOURCES, etc. BY DEFAULT
 
-        This change was made because scanning directories by default
-        could cause huge slowdowns if a configurable directory like /usr
-        or /usr/local was passed as the source to a Builder or Command()
-        call, in which case SCons would scan the entire directory tree.
+        Calls to the env.subst() method to interpolate construction
+        variables in strings no longer automatically expand the special
+        variables $TARGET, $TARGETS, $SOURCE and $SOURCES.  The keyword
+        variables "target" and "source" must now be set to the lists
+        of target and source files to be used in expansion of those
+        variables, when desired.
+
+        This is most likely necessary for any env.subst() calls within
+        a Python function being used as an SCons action for a Builder:
+
+            def build_it(env, target, source):
+                env.subst('$STRING', target=targets, source=sources)
+            MyBuilder = Builder(action=build_it)
+
+        The "target" and "source" keyword arguments are backwards
+        compatible and can be added to SConscript files without breaking
+        builds on systems using older SCons releases.
+
+    --  INTERNAL FUNCTIONS AND CLASSES HAVE MOVED FROM SCons.Util
+
+        All internal functions and classes related to string substitution
+        have been moved out of the SCons.Util module into their own
+        SCons.Subst module.  The following classes have been moved:
+
+                Literal
+                SpecialAttrWrapper
+                NLWrapper
+                Targets_or_Sources
+                Target_or_Source
+
+        And the following functions have moved:
+
+                quote_spaces()
+                escape_list()
+                subst_dict()
+                scons_subst()
+                scons_subst_list()
+                scons_subst_once()
+
+        If your SConscript files have been using any of these function
+        directly from the SCons.Util module (which they ultimately should
+        not be!), you will need to modify them.
+
+  Please note the following important changes since release 0.96.90:
 
     --  SIGNATURES ARE NOW STORED IN AN SConsignFile() BY DEFAULT,
         CAUSING LIKELY REBUILDS; SPECIAL NOTE CONCERNING INTERACTION
@@ -157,20 +197,6 @@ RELEASE 0.97 - XXX
 
             env = Environment(tools = ['default', 'f77'])
 
-    --  /opt/bin AND /sw/bin ADDED TO DEFAULT EXECUTION PATH VARIABLES
-
-        On all POSIX systems, the default execution PATH variable has had
-        the /opt/bin directory added after the /usr/local/bin directory
-        and before /bin and /usr/bin directories.  This may cause SCons
-        to find and/or different compilers, linkers, etc. if you have
-        any same-named utilities installed in /opt/bin that it previously
-        found in /bin or /usr/bin.
-
-        On Mac OS X (Darwin) systems, the /sw/bin directory has been added
-        to the end of the default execution PATH.  This may cause SCons
-        to find compilers, linkers and other utilities it previously did
-        not, although it should not otherwise change existing behavior.
-
     --  SOLARIS DEFAULT SHARED OBJECT PREFIXES AND SUFFIXES HAVE CHANGED
 
         On Solaris, SCons now builds shared objects from C and C++ source
@@ -200,25 +226,61 @@ RELEASE 0.97 - XXX
         "sconsign.1" man pages on UNIX and Linux systems.  A
         new --no-install-man
 
-    --  env.subst() NO LONGER EXPANDS $TARGET, $SOURCES, etc. BY DEFAULT
+    --  BUILDERS RETURN A LIST-LIKE OBJECT, NOT A REGULAR LIST
 
-        Calls to the env.subst() method to interpolate construction
-        variables in strings no longer automatically expand the special
-        variables $TARGET, $TARGETS, $SOURCE and $SOURCES.  The keyword
-        variables "target" and "source" must now be set to the lists
-        of target and source files to be used in expansion of those
-        variables, when desired.
+        Builder calls now return an object that behaves like a list
+        (and which provides some other functionality), not an underlying
+        Python list.  In general, this should not cause any problems,
+        although it introduces a subtle change in the following behavior:
 
-        This is most likely necessary for any env.subst() calls within
-        a Python function being used as an SCons action for a Builder:
+                obj += env.Object('foo.c')
 
-            def build_it(env, target, source):
-                env.subst('$STRING', target=targets, source=sources)
-            MyBuilder = Builder(action=build_it)
+        If "obj" is a regular Python list, Python will no longer update
+        the "obj" in place, because the return value from env.Object()
+        is no longer the same type.  Python will instead allocate a
+        new object and assign the local variable "obj" to it.  If "obj"
+        is defined in an SConscript file that calls another SConscript
+        file containing the above code, "obj" in the first SConscript
+        file will not contain the object file nodes created by the
+        env.Object() call.
 
-        The "target" and "source" keyword arguments are backwards
-        compatible and can be added to SConscript files without breaking
-        builds on systems using older SCons releases.
+        You can guarantee that a list will be updated in place regardless
+        of which SConscript file defines it and which adds to it by
+        using the list append() method as follows:
+
+                obj.append(env.Object('foo.c'))
+
+  Please note the following important changes since release 0.96.1:
+
+    --  DIRECTORY TREES ARE NO LONGER AUTOMATICALLY SCANNED FOR CHANGES
+
+        Custom builders and Command() calls that accept directories as
+        source arguments no longer scan entire on-disk directory trees by
+        default.  This means that their targets will not be automatically
+        rebuilt if a file changes on disk *unless* SCons already knows
+        about the file from a specific Builder or File() call.  Note that
+        the targets will still be rebuilt correctly if a file changes
+        that SCons already knows about due to a Builder or other call.
+
+        The existing behavior of scanning on-disk directory trees for
+        any changed file can be maintained by passing the new DirScanner
+        global directory scanner as the source_scanner keyword argument
+        to the Builder call:
+
+            bld = Builder("build < $SOURCE > $TARGET",
+                          source_scanner = DirScanner)
+
+        The same keyword argument can also be supplied to any Command()
+        calls that need to scan directory trees on-disk for changed files:
+
+            env.Command("archive.out", "directory",
+                        "archiver -o $TARGET $SOURCE",
+                        source_scanner = DirScanner)
+
+        This change was made because scanning directories by default
+        could cause huge slowdowns if a configurable directory like /usr
+        or /usr/local was passed as the source to a Builder or Command()
+        call, in which case SCons would scan the entire directory tree.
 
     --  ParseConfig() METHOD ADDS LIBRARY FILE NAMES TO THE $LIBS VARIABLE
 
@@ -239,6 +301,12 @@ RELEASE 0.97 - XXX
         propagated automatically to the command execution environment on
         Windows systems.
 
+    --  OUTPUT OF Configure() SUBSYSTEM CHANGED SLIGHTLY
+
+        The Configure() subsystem now reports tests results as "yes" and
+        "no" instead of "ok" and "failed."  This might interfere with any
+        scripts that automatically parse the Configure() output from SCons.
+
     --  VISUAL STUDIO ATL AND MFC DIRECTORIES NOT ADDED BY DEFAULT
 
         When compiling with Microsoft Visual Studio, SCons no longer
@@ -250,45 +318,6 @@ RELEASE 0.97 - XXX
 
             env = Environment(MSVS_USE_MFC_DIRS = 1)
 
-    --  BUILDERS RETURN A LIST-LIKE OBJECT, NOT A REGULAR LIST
-
-        Builder calls now return an object that behaves like a list
-        (and which provides some other functionality), not an underlying
-        Python list.  In general, this should not cause any problems,
-        although it introduces a subtle change in the following behavior:
-
-                obj += env.Object('foo.c')
-
-        If "obj" is a regular Python list, Python will no longer update
-        the "obj" in place, because the return value from env.Object()
-        is no longer the same type.  Python will instead allocate a
-        new object and assign the local variable "obj" to it.  If "obj"
-        is defined in an SConscript file that calls another SConscript
-        file containing the above code, "obj" in the first SConscript
-        file will not contain the object file nodes created by the
-        env.Object() call.
-
-        You can guarantee that a list will be updated in place regardless
-        of which SConscript file defines it and which adds to it by
-        using the list append() method as follows:
-
-                obj.append(env.Object('foo.c'))
-
-    --  OUTPUT OF Configure() SUBSYSTEM CHANGED SLIGHTLY
-
-        The Configure() subsystem now reports tests results as "yes" and
-        "no" instead of "ok" and "failed."  This might interfere with any
-        scripts that automatically parse the Configure() output from SCons.
-
-    --  Configure.Checklib() ARGUMENTS HAVE CHANGED TO MATCH DOCUMENTATION
-
-        The order of the arguments to the Configure.CheckLib() function
-        has changed to put the "autoadd" keyword argument last, matching
-        the documentation in the man page.  This could cause problems
-        for any calls to Configure.Checklib() that were relying on the
-        order of the arguments.  Specifying all arguments as keyword
-        arguments will work on both older and newer versions of SCons.
-
     --  DEPRECATED GLOBAL FUNCTIONS HAVE BEEN REMOVED
 
         The following deprecated global functions have been removed:
@@ -300,31 +329,6 @@ RELEASE 0.97 - XXX
         The deprecated "validater" keyword to the Options.Add() method
         has been removed.
 
-    --  INTERNAL FUNCTIONS AND CLASSES HAVE MOVED FROM SCons.Util
-
-        All internal functions and classes related to string substitution
-        have been moved out of the SCons.Util module into their own
-        SCons.Subst module.  The following classes have been moved:
-
-                Literal
-                SpecialAttrWrapper
-                NLWrapper
-                Targets_or_Sources
-                Target_or_Source
-
-        And the following functions have moved:
-
-                quote_spaces()
-                escape_list()
-                subst_dict()
-                scons_subst()
-                scons_subst_list()
-                scons_subst_once()
-
-        If your SConscript files have been using any of these function
-        directly from the SCons.Util module (which they ultimately should
-        not be!), you will need to modify them.
-
   Please note the following important changes since release 0.95:
 
     --  BUILDERS NOW ALWAYS RETURN A LIST OF TARGETS
@@ -349,7 +353,7 @@ RELEASE 0.97 - XXX
         the Object() call:
 
               target = Object('foo.c')
-              # NEW AY
+              # NEW WAY
               print target[0]
 
         This change was introduced to make the data type returned by Builder