Merged revisions 2136-2200,2202-2290,2292-2301 via svnmerge from
[scons.git] / src / CHANGES.txt
index 711b26ca4efa5bc878e0b9969061d50e8be8bbd6..3699e95f278e68b79e2c98a8744deb224bf1be5e 100644 (file)
 
 
 
-RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600
+RELEASE 0.XX - XXX
 
-  NOTE:  This is a pre-release of 0.97 for testing purposes.
+  From Steven Knight:
 
-  From Anonymous:
+  - Fix the wix Tool module to handle null entries in $PATH variables.
 
-  - Allow arbitrary white space after a SWIG %module declaration.
+  - Move the documentation of Install() and InstallAs() from the list
+    of functions to the list of Builders (now that they're implemented
+    as such).
 
-  From Paul:
+  - Allow env.CacheDir() to be set per construction environment.  The
+    global CacheDir() function now sets an overridable global default.
 
-  - When compiling resources under MinGW, make sure there's a space 
-    between the --include-dir option and its argument.
 
-  From Jay Kint:
 
-  - Alleviate long command line issues on Windows by executing command
-    lines directly via os.spawnv() if the command line doesn't need
-    shell interpretation (has no pipes, redirection, etc.).
+RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500
 
-  From Walter Franzini:
+  From Lars Albertsson:
 
-  - Exclude additional Debian packaging files from the copyright check.
+  - Don't error if a #include line happens to match a directory
+    somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).
 
-  From Fawad Halim:
+  From Mark Bertoglio:
 
-  - Handle the conflict between the impending Python 2.6 'as' keyword
-    and our Tool/as.py module name.
+  - Fix listing multiple projects in Visual Studio 7.[01] solution files,
+    including generating individual project GUIDs instead of re-using
+    the solution GUID.
+
+  From Jean Brouwers:
+
+  - Add /opt/SUNWspro/bin to the default execution PATH on Solaris.
+
+  From Allan Erskine:
+
+  - Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c
+    files if the /proxy and /dlldata switches are used (respectively).
 
   From Steven Knight:
 
-  - Speed up the Node.FS.Dir.rel_path() method used to generate path names
-    that get put into the .sconsign* file(s).
+  - Have --debug=explain report if a target is being rebuilt because
+    AlwaysBuild() is specified (instead of "unknown reasons").
 
-  - Optimize Node.FS.Base.get_suffix() by computing the suffix once, up
-    front, when we set the Node's name.  (Duh...)
+  - Support {Get,Set}Option('help') to make it easier for SConscript
+    files to tell if a help option (-h, --help, etc.) has been specified.
 
-  - Reduce the Memoizer's responsibilities to simply counting hits and
-    misses when the --debug=memoizer option is used, not to actually
-    handling the key calculation and memoization itself.  This speeds
-    up some configurations significantly, and should cause no functional
-    differences.
+  - Support {Get,Set}Option('random') so random-dependency interaction
+    with CacheDir() is controllable from SConscript files.
 
-  - Add a new scons-time script with subcommands for generating
-    consistent timing output from SCons configurations, extracting
-    various information from those timings, and displaying them in
-    different formats.
+  - Add a new AddOption() function to support user-defined command-
+    line flags (like --prefix=, --force, etc.).
 
-  - Reduce some unnecessary stat() calls from on-disk entry type checks.
+  - Push and retrieve built symlinks to/from a CacheDir() as actual
+    symlinks, not by copying the file contents.
 
-  - Fix SideEffect() when used with -j, which was badly broken in 0.96.93.
+  - Fix how the Action module handles stringifying the shared library
+    generator in the Tool/mingw.py module.
 
-  - Propagate TypeError exceptions when evaluating construction variable
-    expansions up the stack, so users can see what's going on.
+  - When generating a config.h file, print "#define HAVE_{FEATURE} 1"
+    instad of just "#define HAVE_{FEATURE}", for more compatibility
+    with Autoconf-style projects.
 
-  - When disambiguating a Node.FS.Entry into a Dir or File, don't look
-    in the on-disk source directory until we've confirmed there's no
-    on-disk entry locally and there *is* one in the srcdir.  This avoids
-    creating a phantom Node that can interfere with dependencies on
-    directory contents.
+  - Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
+    Visual C/C++ PDB file names.
+    
+  - Fix locating Visual C/C++ PDB files in build directories.
 
-  - Add an AllowSubstExceptions() function that gives the SConscript
-    files control over what exceptions cause a string to expand to ''
-    vs. terminating processing with an error.
+  - Support an env.AddMethod() method and an AddMethod() global function
+    for adding a new method, respectively, to a construction environment
+    or an arbitrary object (such as a class).
 
-  - Allow the f90.py and f95.py Tool modules to compile earlier source
-    source files of earlier Fortran version.
+  - Fix the --debug=time option when the -j option is specified and all
+    files are up to date.
 
-  - Fix storing signatures of files retrieved from CacheDir() so they're
-    correctly identified as up-to-date next invocation.
+  - Add a $SWIGOUTDIR variable to allow setting the swig -outdir option,
+    and use it to identify files created by the swig -java option.
 
-  - Make sure lists of computed source suffixes cached by Builder objects
-    don't persist across changes to the list of source Builders (so the
-    addition of suffixes like .ui by the qt.py Tool module take effect).
+  - Add a $SWIGPATH variable that specifies the path to be searched
+    for included SWIG files, Also add related $SWIGINCPREFIX and
+    $SWIGINCSUFFIX variables that specify the prefix and suffix to
+    be be added to each $SWIGPATH directory when expanded on the SWIG
+    command line.
 
-  - Enhance the bootstrap.py script to allow it to be used to execute
-    SCons more easily from a checked-out source tree.
+  - More efficient copying of construction environments (mostly borrowed
+    from copy.deepcopy() in the standard Python library).
 
-  From Ben Leslie:
+  - When printing --tree=prune output, don't print [brackets] around
+    source files, only do so for built targets with children.
 
-  - Fix post-Memoizer value caching misspellings in Node.FS._doLookup().
+  - Fix interpretation of Builder source arguments when the Builder has
+    a src_suffix *and* a source_builder and the argument has no suffix.
 
-  From Rob Managan, Dmitry Mikhin and Joel B. Mohler:
+  - Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the
+    following construction variables:  $FORTRANMODDIR, $JARCHDIR,
+    $JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.
 
-  - Handle TeX/LaTeX files in subdirectories by changing directory
-    before invoking TeX/LaTeX.
+  - Fix dependencies on Java files generated by SWIG so they can be
+    detected and built in one pass.
 
-  - Scan LaTeX files for \bibliography lines.
+  - Fix SWIG when used with a BuildDir().
 
-  - Support multiple file names in a "\bibliography{file1,file2}" string.
+  From Leanid Nazdrynau:
 
-  - Handle TeX warnings about undefined citations.
+  - When applying Tool modules after a construction environment has
+    already been created, don't overwrite existing $CFILESUFFIX and
+    $CXXFILESUFFIX value.
 
-  - Support re-running LaTeX if necessary due to a Table of Contents.
+  - Support passing the Java() builder a list of explicit .java files
+    (not only a list of directories to be scanned for .java files).
 
-  From Dmitry Mikhin:
+  - Support passing .java files to the Jar() and JavaH() builders, which
+    then use the builder underlying the Java() builder to turn them into
+    .class files.  (That is, the Jar()-Java() chain of builders become
+    multi-step, like the Program()-Object()-CFile() builders.)
 
-  - Return LaTeX if "Rerun to get citations correct" shows up on the next
-    line after the "Warning:" string.
+  - Support passing SWIG .i files to the Java builders (Java(),
+    Jar(), JavaH()), to cause intermediate .java files to be created
+    automatically.
+
+  - Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to
+    the javac "-classpath" and "-sourcepath" options.  (Note that SCons
+    does *not* currently search these paths for implicit dependencies.)
+
+  - Commonize initialization of Java-related builders.
+
+  From Jan Nijtmans:
+
+  - Find Java anonymous classes when the next token after the name is
+    an open parenthesis.
 
   From Gary Oberbrunner:
 
-  - Add #include lines to fix portability issues in two tests.
+  - Fix a code example in the man page.
 
-  - Eliminate some unnecessary os.path.normpath() calls.
+  From Tilo Prutz:
 
-  - Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS
-    for options common to C and C++.
+  - Add support for the file names that Java 1.5 (and 1.6) generates for
+    nested anonymous inner classes, which are different from Java 1.4.
 
-  From Tom Parker:
+  From Adam Simpkins:
 
-  - Have the error message print the missing file that Qt can't find.
+  - Allow worker threads to terminate gracefully when all jobs are
+    finished.
 
-  From John Pye:
+  From Sohail Somani:
 
-  - Fix env.MergeFlags() appending to construction variable value of None.
+  - Add LaTeX scanner support for finding dependencies specified with
+    the \usepackage{} directive.
 
-  From Steve Robbins:
 
-  - Fix the "sconsign" script when the .sconsign.dblite file is explicitly
-    specified on the command line (and not intuited from the old way of
-    calling it with just ".sconsign").
 
-  From Jose Pablo Ezequiel "Pupeno" Fernandez Silva:
+RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500
 
-  - Give the 'lex' tool knowledge of the additional target files produced
-    by the flex "--header-file=" and "--tables-file=" options.
+  From Steven Knight:
 
-  - Give the 'yacc' tool knowledge of the additional target files produced
-    by the bison "-g", "--defines=" and "--graph=" options.
+  - Fix a bug that would make parallel builds stop in their tracks if
+    Nodes that depended on lists that contained some Nodes built together
+    caused the reference count to drop below 0 if the Nodes were visited
+    and commands finished in the wrong order.
 
-  - Generate intermediate files with Objective C file suffixes (.m) when
-    the lex and yacc source files have appropriate suffixes (.lm and .ym).
+  - Make sure the DirEntryScanner doesn't choke if it's handed something
+    that's not a directory (Node.FS.Dir) Node.
 
-  From Sohail Somain:
 
-  - Have the mslink.py Tool only look for a 'link' executable on Windows
-    systems.
 
-  From Vaclav Smilauer:
+RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
 
-  - Add support for a "srcdir" keyword argument when calling a Builder,
-    which will add a srcdir prefix to all non-relative string sources.
+  NOTE:  This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
 
-  From Jonathan Ultis:
+  From Joe Bloggs:
 
-  - Allow Options converters to take the construction environment as
-    an optional argument.
+  - Man page fix:  remove cut-and-paste sentence in NoCache() description.
 
+  From Dmitry Grigorenko and Gary Oberbrunner:
 
+  - Use the Intel C++ compiler, not $CC, to link C++ source.
 
-RELEASE 0.96.93 - Mon, 06 Nov 2006 00:44:11 -0600
+  From Helmut Grohne:
+
+  - Fix the man page example of propagating a user's external environment.
+
+  From Steven Knight:
+
+  - Back out (most of) the Windows registry installer patch, which
+    seems to not work on some versions of Windows.
+
+  - Don't treat Java ".class" attributes as defining an inner class.
+
+  - Fix detecting an erroneous Java anonymous class when the first
+    non-skipped token after a "new" keyword is a closing brace.
+
+  - Fix a regression when a CPPDEFINES list contains a tuple, the second
+    item of which (the option value) is a construction variable expansion
+    (e.g. $VALUE) and the value of the variable isn't a string.
+
+  - Improve the error message if an IOError (like trying to read a
+    directory as a file) occurs while deciding if a node is up-to-date.
+
+  - Fix "maximum recursion" / "unhashable type" errors in $CPPPATH
+    PathList expansion if a subsidiary expansion yields a stringable,
+    non-Node object.
+
+  - Generate API documentation from the docstrings (using epydoc).
+
+  - Fix use of --debug=presub with Actions for out-of-the-box Builders.
+
+  - Fix handling nested lists within $CPPPATH, $LIBPATH, etc.
+
+  - Fix a "builders_used" AttributeError that real-world Qt initialization
+    triggered in the refactored suffix handling for Builders.
+
+  - Make the reported --debug=time timings meaningful when used with -j.
+    Better documentation of what the times mean.
+
+  - User Guide updates: --random, AlwaysBuild(), --tree=,
+    --debug=findlibs, --debug=presub, --debug=stacktrace,
+    --taskmastertrace.
+
+  - Document (in both man page and User's Guide) that --implicit-cache
+    ignores changes in $CPPPATH, $LIBPATH, etc.
+
+  From Jean-Baptiste Lab:
+
+  - Remove hard-coded dependency on Python 2.2 from Debian packaging files.
+
+  From Jeff Mahovsky:
+
+  - Handle spaces in the build target name in Visual Studio project files.
+
+  From Rob Managan:
+
+  - Re-run LaTeX after BibTeX has been re-run in response to a changed
+    .bib file.
+
+  From Joel B. Mohler:
+
+  - Make additional TeX auxiliary files (.toc, .idx and .bbl files)
+    Precious so their removal doesn't affect whether the necessary
+    sections are included in output PDF or PostScript files.
+
+  From Gary Oberbrunner:
+
+  - Fix the ability to import modules in the site_scons directory from
+    a subdirectory.
+
+  From Adam Simpkins:
+
+  - Make sure parallel (-j) builds all targets even if they show up
+    multiple times in the child list (as a source and a dependency).
+
+  From Matthias Troffaes:
+
+  - Don't re-run TeX if the triggering strings (\makeindex, \bibliography
+    \tableofcontents) are commented out.
+
+  From Richard Viney:
+
+  - Fix use of custom include and lib paths with Visual Studio 8.
+
+  - Select the default .NET Framework SDK Dir based on the version of
+    Visual Studio being used.
+
+
+
+RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
+
+  From Anatoly:
+
+  - Add the scons.org URL and a package description to the setup.py
+    arguments.
+
+  - Have the Windows installer add a registry entry for scons.bat in the
+    "App Paths" key, so scons.bat can be executed without adding the
+    directory to the %PATH%.  (Python itself works this way.)
+
+  From Anonymous:
+
+  - Fix looking for default paths in Visual Studio 8.0 (and later).
+
+  - Add -lm to the list of default D libraries for linking.
+
+  From Matt Doar:
+
+  - Provide a more complete write-your-own-Scanner example in the man page.
+
+  From Ralf W. Grosse-Kunstleve:
+
+  - Contributed upstream Python change to our copied subprocess.py module
+    for more efficient standard input processing.
+
+  From Steven Knight:
+
+  - Fix the Node.FS.Base.rel_path() method when the two nodes are on
+    different drive letters.  (This caused an infinite loop when
+    trying to write .sconsign files.)
+
+  - Fully support Scanners that use a dictionary to map file suffixes
+    to other scanners.
+
+  - Support delayed evaluation of the $SPAWN variable to allow selection
+    of a function via ${} string expansions.
+
+  - Add --srcdir as a synonym for -Y/--repository.
+
+  - Document limitations of #include "file.h" with Repository().
+
+  - Fix use of a toolpath under the source directory of a BuildDir().
+
+  - Fix env.Install() with a file name portion that begins with '#'.
+
+  - Fix ParseConfig()'s handling of multiple options in a string that's
+    replaced a *FLAGS construction variable.
+
+  - Have the C++ tools initialize common C compilation variables ($CCFLAGS,
+    $SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded.
+
+  From Leanid Nazdrynau:
+
+  - Fix detection of Java anonymous classes if a newline precedes the
+    opening brace.
+
+  From Gary Oberbrunner:
+
+  - Document use of ${} to execute arbitrary Python code.
+
+  - Add support for:
+    1) automatically adding a site_scons subdirectory (in the top-level
+       SConstruct directory) to sys.path (PYTHONPATH);
+    2) automatically importing site_scons/site_init.py;
+    3) automatically adding site_scons/site_tools to the toolpath.
+
+  From John Pye:
+
+  - Change ParseConfig() to preserve white space in arguments passed in
+    as a list.
+
+  From a smith:
+
+  - Fix adding explicitly-named Java inner class files (and any
+    other file names that may contain a '$') to Jar files.
+
+  From David Vitek:
+
+  - Add a NoCache() function to mark targets as unsuitable for propagating
+    to (or retrieving from) a CacheDir().
+
+  From Ben Webb:
+
+  - If the swig -noproxy option is used, it won't generate a .py file,
+    so don't emit it as a target that we expect to be built.
+
+
+
+RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600
 
   NOTE:  This is a pre-release of 0.97 for testing purposes.