Merged revisions 5065-5066 via svnmerge from
[scons:mainlinemirror.git] / src / CHANGES.txt
1
2
3                  SCons - a software construction tool
4
5                             Change Log
6
7
8 RELEASE 2.0.1.beta.20100627 - Mon, 27 Jun 2010 18:03:55 -0700
9
10   From Dirk Baechle:
11
12     - Fix XML in documentation.
13
14   From Joe Zuntz:
15
16     - Fixed a case-sensitivity problem with Fortran modules.
17
18   From Bauke Conijn:
19
20     - Added Users Guide example for auto-generated source code
21
22   From Steven Knight:
23
24     - Fix explicit dependencies (Depends()) on Nodes that don't have
25       attached Builders.
26
27     - Provide forward compatibility for the 'profile' module.
28
29     - Provide forward compatibility for the 'pickle' module.
30
31     - Provide forward compatibility for the 'io' module.
32
33     - Provide forward compatibility for the 'queue' module.
34
35     - Provide forward compatibility for the 'collections' module.
36
37     - Provide forward compatibility for the 'builtins' module.
38
39     - Provide forward compatibility for 'sys.intern()'.
40
41     - Convert to os.walk() from of os.path.walk().
42
43     - Remove compatibility logic no longer needed.
44
45     - Add a '-3' option to runtest to print 3.x incompatibility warnings.
46
47     - Convert old-style classes into new-style classes.
48
49     - Fix "Ignoring corrupt sconsign entry" warnings when building
50       in a tree with a pre-2.0 .sconsign file.
51
52     - Fix propagation from environment of VS*COMNTOOLS to resolve issues 
53       initializing MSVC/MSVS/SDK issues.
54
55     - Handle detecting Visual C++ on Python verions with upper-case
56       platform architectures like 'AMD64'.
57
58   From Matt Hughes:
59
60     - Fix the ability to append to default $*FLAGS values (which are
61       implemented as CLVar instances) in a copied construction environment
62       without affecting the original construction environment's value.
63
64   From Rob Managan:
65
66     - Updated the TeX command strings to include a /D on Windows in
67       case the new directory is on a different drive letter.
68
69     - Fixed the LaTeX scanner so dependencies are found in commands that
70       are broken across lines with a comment or have embedded spaces.
71
72   From W. Trevor King:
73
74     - Revisions to README.
75
76   From Greg Noel:
77
78     - Apply numerous Python fixers to update code to more modern idioms.
79       Find where fixers should be applied to code in test strings and
80       apply the fixers there, too.
81
82     - Write a fixer to convert string functions to string methods.
83
84     - Modify the 'dict' fixer to be less conservative.
85
86     - Modify the 'apply' fixer to handle more cases.
87
88     - Create a modified 'types' fixer that converts types to 2.x
89       equivalents rather than 3.x equivalents.
90
91     - Write a 'division' fixer to highlight uses of the old-style
92       division operator.  Correct usage where needed.
93
94     - Add forward compatibility for the new 'memoryview' function
95       (which replaces the 'buffer' function).
96
97     - Add forward compatibility for the 'winreg' module.
98
99     - Remove no-longer-needed 'platform' module.
100
101     - Run tests with the '-3' option to Python 2.6 and clear up
102       various reported incompatibilities.
103
104     - Comb out code paths specialized to Pythons older than 2.4.
105
106     - Update deprecation warnings; most now become mandatory.
107
108     - Start deprecation cycle for BuildDir() and build_dir.
109
110     - Start deprecation cycle for SourceCode() and related factories
111
112     - Fixed a problem with is_Dict() not identifying some objects derived
113       from UserDict.
114
115   From Jim Randall:
116
117     - Document the AllowSubstExceptions() function in the User's Guide.
118
119   From William Deegan:
120
121     - Migrate MSVC/MSVS/SDK improvements from 1.3 branch.
122
123
124 RELEASE 1.3.0 - Tue, 23 Mar 2010 21:44:19 -0400
125
126   From Steven Knight:
127
128     - Update man page and documentation.
129
130   From William Deegan (plus minor patch from Gary Oberbrunner):
131
132     - Support Visual Studio 8.0 Express
133
134 RELEASE 1.2.0.d20100306 - Sat, 06 Mar 2010 16:18:33 -0800
135
136   From Luca Falavigna:
137
138     - Fix typos in the man page.
139
140   From Gottfried Ganssauge:
141
142     - Support execution when SCons is installed via easy_install.
143
144   From Steven Knight:
145
146     - Make the messages for Configure checks of compilers consistent.
147
148     - Issue an error message if a BUILDERS entry is not a Builder
149       object or a callable wrapper.
150
151   From Rob Managan:
152
153     - Update tex builder to handle the case where a \input{foo}
154       command tries to work with a directory named foo instead of the
155       file foo.tex. The builder now ignores a directory and continues
156       searching to find the correct file. Thanks to Lennart Sauerbeck
157       for the test case and initial patch
158
159       Also allow the \include of files in subdirectories when variantDir
160       is used with duplicate=0. Previously latex would crash since
161       the directory in which the .aux file is written was not created.
162       Thanks to Stefan Hepp for finding this and part of the solution.
163
164   From James Teh:
165     - Patches to fix some issues using MS SDK V7.0
166
167   From William Deegan:
168     - Lots of testing and minor patches to handle mixed MS VC and SDK
169       installations, as well as having only the SDK installed.
170
171
172 RELEASE 1.2.0.d20100117 - Sun, 17 Jan 2010 14:26:59 -0800
173
174   From Jim Randall:
175     - Fixed temp filename race condition on Windows with long cmd lines.
176
177   From David Cournapeau:
178     - Fixed tryRun when sconf directory is in a variant dir.
179     - Do not add -fPIC for ifort tool on non-posix platforms (darwin and
180       windows).
181     - Fix bug 2294 (spurious CheckCC failures).
182     - Fix scons bootstrap process on windows 64 (wrong wininst name)
183
184   From William Deegan:
185     - Final merge from vs_revamp branch to main
186
187     - Added definition and usage of HOST_OS, HOST_ARCH, TARGET_OS,
188       TARGET_ARCH, currently only defined/used by Visual Studio
189       Compilers. This will be rolled out to other platforms/tools
190       in the future.
191
192     - Add check for python >= 3.0.0 and exit gracefully.
193       For 1.3 python >= 1.5.2 and < 3.0.0 are supported
194
195     - Fix bug 1944 - Handle non-existent .i file in swig emitter, previously
196       it would crash with an IOError exception. Now it will try to make an
197       educated guess on the module name based on the filename.
198
199   From Lukas Erlinghagen:
200
201     - Have AddOption() remove variables from the list of
202       seen-but-unknown variables (which are reported later).
203
204     - An option name and aliases can now be specified as a tuple.
205
206   From Hartmut Goebel:
207
208     - Textfile builder.
209
210   From Jared Grubb:
211
212     - use "is/is not" in comparisons with None instead of "==" or "!=".
213
214   From Jim Hunziker:
215
216     - Avoid adding -gphobos to a command line multiple times
217       when initializing use of the DMD compiler.
218
219   From Jason Kenney:
220
221     - Sugguested HOST/TARGET OS/ARCH separation.
222
223   From Steven Knight:
224
225     - Fix the -n option when used with VariantDir(duplicate=1)
226       and the variant directory doesn't already exist.
227
228     - Fix scanning of Unicode files for both UTF-16 endian flavors.
229
230     - Fix a TypeError on #include of file names with Unicode characters.
231
232     - Fix an exception if a null command-line argument is passed in.
233
234     - Evaluate Requires() prerequisites before a Node's direct children
235       (sources and dependencies).
236
237   From Greg Noel:
238
239     - Remove redundant __metaclass__ initializations in Environment.py.
240
241     - Correct the documentation of text returned by sconf.Result().
242
243     - Document that filenames with '.' as the first character are
244       ignored by Glob() by default (matching UNIX glob semantics).
245
246     - Fix SWIG testing infrastructure to work on Mac OS X.
247
248     - Restructure a test that occasionally hung so that the test would
249       detect when it was stuck and fail instead.
250
251     - Substfile builder.
252
253   From Gary Oberbrunner:
254
255     - When reporting a target that SCons doesn't know how to make,
256       specify whether it's a File, Dir, etc.
257
258   From Ben Webb:
259
260     - Fix use of $SWIGOUTDIR when generating Python wrappers.
261
262     - Add $SWIGDIRECTORSUFFIX and $SWIGVERSION construction variables.
263
264   From Rob Managan:
265
266     - Add -recorder flag to Latex commands and updated internals to
267       use the output to find files TeX creates. This allows the MiKTeX
268       installations to find the created files
269
270     - Notify user of Latex errors that would get buried in the
271       Latex output
272
273     - Remove LATEXSUFFIXES from environments that don't initialize Tex.
274
275     - Add support for the glosaaries package for glossaries and acronyms
276
277     - Fix problem that pdftex, latex, and pdflatex tools by themselves did
278       not create the actions for bibtex, makeindex,... by creating them
279       and other environment settings in one routine called by all four
280       tex tools.
281
282     - Fix problem with filenames of sideeffects when the user changes
283       the name of the output file from the latex default
284
285     - Add scanning of files included in Latex by means of \lstinputlisting{}
286       Patch from Stefan Hepp.
287
288     - Change command line for epstopdf to use --outfile= instead of -o
289       since this works on all platforms.
290       Patch from Stefan Hepp.
291
292     - Change scanner to properly search for included file from the
293       directory of the main file instead of the file it is included from.
294       Also update the emitter to add the .aux file associated with
295       \include{filename} commands. This makes sure the required directories
296       if any are created for variantdir cases.
297       Half of the patch from Stefan Hepp.
298
299 RELEASE 1.2.0.d20090223 - Mon, 23 Feb 2009 08:41:06 -0800
300
301   From Stanislav Baranov:
302
303     - Make suffix-matching for scanners case-insensitive on Windows.
304
305   From David Cournapeau:
306
307     - Change the way SCons finds versions of Visual C/C++ and Visual
308       Studio to find and use the Microsoft v*vars.bat files.
309
310   From Robert P. J. Day:
311
312     - User's Guide updates.
313
314   From Dan Eaton:
315
316     - Fix generation of Visual Studio 8 project files on x64 platforms.
317
318   From Allan Erskine:
319
320     - Set IncludeSearchPath and PreprocessorDefinitions in generated
321       Visual Studio 8 project files, to help IntelliSense work.
322
323   From Mateusz Gruca:
324
325     - Fix deletion of broken symlinks by the --clean option.
326
327   From Steven Knight:
328
329     - Fix the error message when use of a non-existent drive on Windows
330       is detected.
331
332     - Add sources for files whose targets don't exist in $CHANGED_SOURCES.
333
334     - Detect implicit dependencies on commands even when the command is
335       quoted.
336
337     - Fix interaction of $CHANGED_SOURCES with the --config=force option.
338
339     - Fix finding #include files when the string contains escaped
340       backslashes like "C:\\some\\include.h".
341
342     - Pass $CCFLAGS to Visual C/C++ precompiled header compilation.
343
344     - Remove unnecessary nested $( $) around $_LIBDIRFLAGS on link lines
345       for the Microsoft linker, the OS/2 ilink linker and the Phar Lap
346       linkloc linker.
347
348     - Spell the Windows environment variables consistently "SystemDrive"
349       and "SystemRoot" instead of "SYSTEMDRIVE" and "SYSTEMROOT".
350
351
352
353 RELEASE 1.2.0.d20090113 - Tue, 13 Jan 2009 02:50:30 -0800
354
355   From Stanislav Baranov, Ted Johnson and Steven Knight:
356
357     - Add support for batch compilation of Visual Studio C/C++ source
358       files, controlled by a new $MSVC_BATCH construction variable.
359
360   From Steven Knight:
361
362     - Print the message, "scons: Build interrupted." on error output,
363       not standard output.
364
365     - Add a --warn=future-deprecated option for advance warnings about
366       deprecated features that still have warnings hidden by default.
367
368     - Fix use of $SOURCE and $SOURCES attributes when there are no
369       sources specified in the Builder call.
370
371     - Add support for new $CHANGED_SOURCES, $CHANGED_TARGETS,
372       $UNCHANGED_SOURCES and $UNCHANGED_TARGETS variables.
373
374     - Add general support for batch builds through new batch_key= and
375       targets= keywords to Action object creation.
376
377   From Arve Knudsen:
378
379     - Make linker tools differentiate properly between SharedLibrary
380       and LoadableModule.
381
382     - Document TestCommon.shobj_prefix variable.
383
384     - Support $SWIGOUTDIR values with spaces.
385
386   From Rob Managan:
387
388     - Don't automatically try to build .pdf graphics files for
389       .eps files in \includegraphics{} calls in TeX/LaTeX files
390       when building with the PDF builder (and thus using pdflatex).
391
392   From Gary Oberbrunner:
393
394     - Allow AppendENVPath() and PrependENVPath() to interpret '#'
395       for paths relative to the top-level SConstruct directory.
396
397     - Use the Borland ilink -e option to specify the output file name.
398
399     - Document that the msvc Tool module uses $PCH, $PCHSTOP and $PDB.
400
401     - Allow WINDOWS_INSERT_DEF=0 to disable --output-def when linking
402       under MinGW.
403
404   From Zia Sobhani:
405
406     - Fix typos in the User's Guide.
407
408   From Greg Spencer:
409
410     - Support implicit dependency scanning of files encoded in utf-8
411       and utf-16.
412
413   From Roberto de Vecchi:
414
415     - Remove $CCFLAGS from the the default definitions of $CXXFLAGS for
416       Visual C/C++ and MIPSpro C++ on SGI so, they match other tools
417       and avoid flag duplication on C++ command lines.
418
419   From Ben Webb:
420
421     - Handle quoted module names in SWIG source files.
422
423     - Emit *_wrap.h when SWIG generates header file for directors
424
425   From Matthew Wesley:
426
427     - Copy file attributes so we identify, and can link a shared library
428       from, shared object files in a Repository.
429
430
431
432 RELEASE 1.2.0 - Sat, 20 Dec 2008 22:47:29 -0800
433
434   From Steven Knight:
435
436     - Don't fail if can't import a _subprocess module on Windows.
437
438     - Add warnings for use of the deprecated Options object.
439
440
441
442 RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800
443
444   From Benoit Belley:
445
446     - Improve the robustness of GetBuildFailures() by refactoring
447       SCons exception handling (especially BuildError exceptions).
448
449     - Have the --taskmastertrace= option print information about
450       individual Task methods, not just the Taskmaster control flow.
451
452     - Eliminate some spurious dependency cycles by being more aggressive
453       about pruning pending children from the Taskmaster walk.
454
455     - Suppress mistaken reports of a dependency cycle when a child
456       left on the pending list is a single Node in EXECUTED state.
457
458   From David Cournapeau:
459
460     - Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool.
461
462   From Brad Fitzpatrick:
463
464     - Don't pre-generate an exception message (which will likely be
465       ignored anyway) when an EntryProxy re-raises an AttributeError.
466
467   From Jared Grubb:
468
469     - Clean up coding style and white space in Node/FS.py.
470
471     - Fix a typo in the documentation for $_CPPDEFFLAGS.
472
473     - Issue 2401: Fix usage of comparisons with None.
474
475   From Ludwig Hähne:
476
477     - Handle Java inner classes declared within a method.
478
479   From Steven Knight:
480
481     - Fix label placement by the "scons-time.py func" subcommand
482       when a profile value was close to (or equal to) 0.0.
483
484     - Fix env.Append() and env.Prepend()'s ability to add a string to
485       list-like variables like $CCFLAGS under Python 2.6.
486
487     - Other Python2.6 portability:  don't use "as" (a Python 2.6 keyword).
488       Don't use the deprecated Exception.message attribute.
489
490     - Support using the -f option to search for a different top-level
491       file name when walking up with the -D, -U or -u options.
492
493     - Fix use of VariantDir when the -n option is used and doesn't,
494       therefore, actually create the variant directory.
495
496     - Fix a stack trace from the --debug=includes option when passed a
497       static or shared library as an argument.
498
499     - Speed up the internal find_file() function (used for searching
500       CPPPATH, LIBPATH, etc.).
501
502     - Add support for using the Python "in" keyword on construction
503       environments (for example, if "CPPPATH" in env: ...).
504
505     - Fix use of Glob() when a repository or source directory contains
506       an in-memory Node without a corresponding on-disk file or directory.
507
508     - Add a warning about future reservation of $CHANGED_SOURCES,
509       $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS.
510
511     - Enable by default the existing warnings about setting the resource
512       $SOURCE, $SOURCES, $TARGET and $TARGETS variable.
513
514   From Rob Managan:
515
516     - Scan for TeX files in the paths specified in the $TEXINPUTS
517       construction variable and the $TEXINPUTS environment variable.
518
519     - Configure the PDF() and PostScript() Builders as single_source so
520       they know each source file generates a separate target file.
521
522     - Add $EPSTOPDF, $EPSTOPDFFLAGS and $EPSTOPDFCOM
523
524     - Add .tex as a valid extension for the PDF() builder.
525
526     - Add regular expressions to find \input, \include and
527       \includegraphics.
528
529     - Support generating a .pdf file from a .eps source.
530
531     - Recursive scan included input TeX files.
532
533     - Handle requiring searched-for TeX input graphics files to have
534       extensions (to avoid trying to build a .eps from itself, e.g.).
535
536   From Greg Noel:
537
538     - Make the Action() function handle positional parameters consistently.
539
540     - Clarify use of Configure.CheckType().
541
542     - Make the File.{Dir,Entry,File}() methods create their entries
543       relative to the calling File's directory, not the SConscript
544       directory.
545
546     - Use the Python os.devnull variable to discard error output when
547       looking for the $CC or $CXX version.
548
549     - Mention LoadableModule() in the SharedLibrary() documentation.
550
551   From Gary Oberbrunner:
552
553     - Update the User's Guide to clarify use of the site_scons/
554       directory and the site_init.py module.
555
556     - Make env.AppendUnique() and env.PrependUnique remove duplicates
557       within a passed-in list being added, too.
558
559   From Randall Spangler:
560
561     - Fix Glob() so an on-disk file or directory beginning with '#'
562       doesn't throw an exception.
563
564
565
566 RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700
567
568   From Chris AtLee
569
570     - Use the specified environment when checking for the GCC compiler
571       version.
572
573   From Ian P. Cardenas:
574
575     - Fix Glob() polluting LIBPATH by returning copy of list
576
577   From David Cournapeau:
578
579     - Add CheckCC, CheckCXX, CheckSHCC and CheckSHCXX tests to
580       configuration contexts.
581
582     - Have the --profile= argument use the much faster cProfile module
583       (if it's available in the running Python version).
584
585     - Reorder MSVC compilation arguments so the /Fo is first.
586
587   From Bill Deegan:
588
589     - Add scanning Windows resource (.rc) files for implicit dependencies.
590
591   From John Gozde:
592
593     - When scanning for a #include file, don't use a directory that
594       has the same name as the file.
595
596   From Ralf W. Grosse-Kunstleve
597
598     - Suppress error output when checking for the GCC compiler version.
599
600   From Jared Grubb:
601
602     - Fix VariantDir duplication of #included files in subdirectories.
603
604   From Ludwig Hähne:
605
606     - Reduce memory usage when a directory is used as a dependency of
607       another Node (such as an Alias) by returning a concatenation
608       of the children's signatures + names, not the children's contents,
609       as the directory contents.
610
611     - Raise AttributeError, not KeyError, when a Builder can't be found.
612
613     - Invalidate cached Node information (such as the contenst returned
614       by the get_contents() method) when calling actions with Execute().
615
616     - Avoid object reference cycles from frame objects.
617
618     - Reduce memory usage from Null Executor objects.
619
620     - Compute MD5 checksums of large files without reading the entire
621       file contents into memory.  Add a new --md5-chunksize option to
622       control the size of each chunk read into memory.
623
624   From Steven Knight:
625
626     - Fix the ability of the add_src_builder() method to add a new
627       source builder to any other builder.
628
629     - Avoid an infinite loop on non-Windows systems trying to find the
630       SCons library directory if the Python library directory does not
631       begin with the string "python".
632
633     - Search for the SCons library directory in "scons-local" (with
634       no version number) after "scons-local-{VERSION}".
635
636   From Rob Managan:
637
638     - Fix the user's ability to interrupt the TeX build chain.
639
640     - Fix the TeX builder's allowing the user to specify the target name,
641       instead of always using its default output name based on the source.
642
643     - Iterate building TeX output files until all warning are gone
644       and the auxiliary files stop changing, or until we reach the
645       (configurable) maximum number of retries.
646
647     - Add TeX scanner support for:  glossaries, nomenclatures, lists of
648       figures, lists of tables, hyperref and beamer.
649
650     - Use the $BIBINPUTS, $BSTINPUTS, $TEXINPUTS and $TEXPICTS construction
651       variables as search paths for the relevant types of input file.
652
653     - Fix building TeX with VariantDir(duplicate=0) in effect.
654
655     - Fix the LaTeX scanner to search for graphics on the TEXINPUTS path.
656
657     - Have the PDFLaTeX scanner search for .gif files as well.
658
659   From Greg Noel:
660
661     - Fix typos and format bugs in the man page.
662
663     - Add a first draft of a wrapper module for Python's subprocess
664       module.
665
666     - Refactor use of the SCons.compat module so other modules don't
667       have to import it individually.
668
669     - Add .sx as a suffix for assembly language files that use the
670       C preprocessor.
671
672   From Gary Oberbrunner:
673
674     - Make Glob() sort the returned list of Files or Nodes
675       to prevent spurious rebuilds.
676
677     - Add a delete_existing keyword argument to the AppendENVPath()
678       and PrependENVPath() Environment methods.
679
680     - Add ability to use "$SOURCE" when specifying a target to a builder
681
682   From Damyan Pepper:
683
684     - Add a test case to verify that SConsignFile() files can be
685       created in previously non-existent subdirectories.
686
687   From Jim Randall:
688
689     - Make the subdirectory in which the SConsignFile() file will
690       live, if the subdirectory doesn't already exist.
691
692   From Ali Tofigh:
693
694     - Add a test to verify duplication of files in VariantDir subdirectories.
695
696
697
698 RELEASE 1.0.1 - Sat, 06 Sep 2008 07:29:34 -0700
699
700   From Greg Noel:
701
702     - Add a FindFile() section to the User's Guide.
703
704     - Fix the FindFile() documentation in the man page.
705
706     - Fix formatting errors in the Package() description in the man page.
707
708     - Escape parentheses that appear within variable names when spawning
709       command lines using os.system().
710
711
712
713 RELEASE 1.0.0 - XXX
714
715   From Jared Grubb:
716
717     - Clear the Node state when turning a generic Entry into a Dir.
718
719   From Ludwig Hähne:
720
721     - Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
722
723     - Document the ParseDepends() function in the User's Guide.
724
725   From khomenko:
726
727     - Create a separate description and long_description for RPM packages.
728
729   From Steven Knight:
730
731     - Document the GetLaunchDir() function in the User's Guide.
732
733     - Have the env.Execute() method print an error message if the
734       executed command fails.
735
736     - Add a script for creating a standard SCons development system on
737       Ubuntu Hardy.  Rewrite subsidiary scripts for install Python and
738       SCons versions in Python (from shell).
739
740   From Greg Noel:
741
742     - Handle yacc/bison on newer Mac OS X versions creating file.hpp,
743       not file.cpp.h.
744
745     - In RPCGEN tests, ignore stderr messages from older versions of
746       rpcgen on some versions of Mac OS X.
747
748     - Fix typos in man page descriptions of Tag() and Package(), and in
749       the scons-time man page.
750
751     - Fix documentation of SConf.CheckLibWithHeader and other SConf methods.
752
753     - Update documentation of SConscript(variant_dir) usage.
754
755     - Fix SWIG tests for (some versions of) Mac OS X.
756
757   From Jonas Olsson:
758
759     - Print the warning about -j on Windows being potentially unreliable if
760       the pywin32 extensions are unavailable or lack file handle operations.
761
762   From Jim Randall:
763
764     - Fix the env.WhereIs() method to expand construction variables.
765
766   From Rogier Schouten:
767
768     - Enable building of shared libraries with the Bordand ilink32 linker.
769
770
771
772 RELEASE 1.0.0 - Sat, 09 Aug 2008 12:19:44 -0700
773
774   From Luca Falavigna:
775
776     - Fix SCons man page indentation under Debian's man page macros.
777
778   From Steven Knight:
779
780     - Clarify the man page description of the SConscript(src_dir) argument.
781
782     - User's Guide updates:
783
784        -  Document the BUILD_TARGETS, COMMAND_LINE_TARGETS and
785           DEFAULT_TARGETS variables.
786
787        -  Document the AddOption(), GetOption() and SetOption() functions.
788
789        -  Document the Requires() function; convert to the Variables
790           object, its UnknownOptions() method, and its associated
791           BoolVariable(), EnumVariable(), ListVariable(), PackageVariable()
792           and PathVariable() functions.
793
794        -  Document the Progress() function.
795
796        -  Reorganize the chapter and sections describing the different
797           types of environments and how they interact.  Document the
798           SetDefault() method.  Document the PrependENVPath() and
799           AppendENVPath() functions.
800
801        -  Reorganize the command-line arguments chapter.  Document the
802           ARGLIST variable.
803
804        -  Collect some miscellaneous sections into a chapter about
805           configuring build output.
806
807     - Man page updates:
808
809        -  Document suggested use of the Visual C/C++ /FC option to fix
810           the ability to double-click on file names in compilation error
811           messages.
812
813        -  Document the need to use Clean() for any SideEffect() files that
814           must be explicitly removed when their targets are removed.
815
816        -  Explicitly document use of Node lists as input to Dependency().
817
818   From Greg Noel:
819
820     - Document MergeFlags(), ParseConfig(), ParseFlags() and SideEffect()
821       in the User's Guide.
822
823   From Gary Oberbrunner:
824
825     - Document use of the GetBuildFailures() function in the User's Guide.
826
827   From Adam Simpkins:
828
829     - Add man page text clarifying the behavior of AddPreAction() and
830       AddPostAction() when called with multiple targets.
831
832   From Alexey Zezukin:
833
834     - Fix incorrectly swapped man page descriptions of the --warn= options
835       for duplicate-environment and missing-sconscript.
836
837
838
839 RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700
840
841   From Benoit Belley:
842
843   - Fix the Intel C++ compiler ABI specification for EMT64 processors.
844
845   From David Cournapeau:
846
847   - Issue a (suppressable) warning, not an error, when trying to link
848     C++ and Fortran object files into the same executable.
849
850   From Steven Knight:
851
852   - Update the scons.bat file so that it returns the real exit status
853     from SCons, even though it uses setlocal + endlocal.
854
855   - Fix the --interactive post-build messages so it doesn't get stuck
856     mistakenly reporting failures after any individual build fails.
857
858   - Fix calling File() as a File object method in some circumstances.
859
860   - Fix setup.py installation on Mac OS X so SCons gets installed
861     under /usr/lcoal by default, not in the Mac OS X Python framework.
862
863
864
865 RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700
866
867   From Benoit Belley:
868
869   - Fix calculation of signatures for Python function actions with
870     closures in Python versions before 2.5.
871
872   From David Cournapeau:
873
874   - Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS.
875
876   From Jonas Olsson:
877
878   - Fix a syntax error in the Intel C compiler support on Windows.
879
880   From Steven Knight:
881
882   - Change how we represent Python Value Nodes when printing and when
883     stored in .sconsign files (to avoid blowing out memory by storing
884     huge strings in .sconsign files after multiple runs using Configure
885     contexts cause the Value strings to be re-escaped each time).
886
887   - Fix a regression in not executing configuration checks after failure
888     of any configuration check that used the same compiler or other tool.
889
890   - Handle multiple destinations in Visual Studio 8 settings for the
891     analogues to the INCLUDE, LIBRARY and PATH variables.
892
893   From Greg Noel:
894
895   - Update man page text for VariantDir().
896
897
898
899 RELEASE 0.98.3 - Tue, 29 Apr 2008 22:40:12 -0700
900
901   From Greg Noel:
902
903   - Fix use of $CXXFLAGS when building C++ shared object files.
904
905   From Steven Knight:
906
907   - Fix a regression when a Builder's source_scanner doesn't select
908     a more specific scanner for the suffix of a specified source file.
909
910   - Fix the Options object backwards compatibility so people can still
911     "import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules.
912
913   - Fix searching for implicit dependencies when an Entry Node shows up
914     in the search path list.
915
916   From Stefano:
917
918   - Fix expansion of $FORTRANMODDIR in the default Fortran command line(s)
919     when it's set to something like ${TARGET.dir}.
920
921
922
923 RELEASE 0.98.2 - Sun, 20 Apr 2008 23:38:56 -0700
924
925   From Steven Knight:
926
927   - Fix a bug in Fortran suffix computation that would cause SCons to
928     run out of memory on Windows systems.
929
930   - Fix being able to specify --interactive mode command lines with
931     \ (backslash) path name separators on Windows.
932
933   From Gary Oberbrunner:
934
935   - Document Glob() in the User's Guide.
936
937
938
939 RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700
940
941   From Benoit Belley:
942
943   - Speed up the SCons.Util.to_string*() functions.
944
945   - Optimize various Node intialization and calculations.
946
947   - Optimize Executor scanning code.
948
949   - Optimize Taskmaster execution, including dependency-cycle checking.
950
951   - Fix the --debug=stree option so it prints its tree once, not twice.
952
953   From Johan BoulÃ:
954
955   - Fix the ability to use LoadableModule() under MinGW.
956
957   From David Cournapeau:
958
959   - Various missing Fortran-related construction variables have been added.
960
961   - SCons now uses the program specified in the $FORTRAN construction
962     variable to link Fortran object files.
963
964   - Fortran compilers on Linux (Intel, g77 and gfortran) now add the -fPIC
965     option by default when compilling shared objects.
966
967   - New 'sunf77', 'sunf90' and 'sunf95' Tool modules have been added to
968     support Sun Fortran compilers.  On Solaris, the Sun Fortran compilers
969     are used in preference to other compilers by default.
970
971   - Fortran support now uses gfortran in preference to g77.
972
973   - Fortran file suffixes are now configurable through the
974     $F77FILESUFFIXES, $F90FILESUFFIXES, $F95FILESUFFIXES and
975     $FORTRANFILESUFFIXES variables.
976
977   From Steven Knight:
978
979   - Make the -d, -e, -w and --no-print-directory options "Ignored for
980     compatibility."  (We're not going to implement them.)
981
982   - Fix a serious inefficiency in how SCons checks for whether any source
983     files are missing when a Builder call creates many targets from many
984     input source files.
985
986   - In Java projects, make the target .class files depend only on the
987     specific source .java files where the individual classes are defined.
988
989   - Don't store duplicate source file entries  in the .sconsign file so
990     we don't endlessly rebuild the target(s) for no reason.
991
992   - Add a Variables object as the first step towards deprecating the
993     Options object name.  Similarly, add BoolVariable(), EnumVariable(),
994     ListVariable(), PackageVariable() and PathVariable() functions
995     as first steps towards replacing BoolOption(), EnumOption(),
996     ListOption(), PackageOption() and PathOption().
997
998   - Change the options= keyword argument to the Environment() function
999     to variables=, to avoid confusion with SCons command-line options.
1000     Continue supporting the options= keyword for backwards compatibility.
1001
1002   - When $SWIGFLAGS contains the -python flag, expect the generated .py
1003     file to be in the same (sub)directory as the target.
1004
1005   - When compiling C++ files, allow $CCFLAGS settings to show up on the
1006     command line even when $CXXFLAGS has been redefined.
1007
1008   - Fix --interactive with -u/-U/-D when a VariantDir() is used.
1009
1010   From Anatoly Techtonik:
1011
1012   - Have the scons.bat file add the script execution directory to its
1013     local %PATH% on Windows, so the Python executable can be found.
1014
1015   From Mike Wake:
1016
1017   - Fix passing variable names as a list to the Return() function.
1018
1019   From Matthew Wesley:
1020
1021   - Add support for the GDC 'D' language compiler.
1022
1023
1024
1025 RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700
1026
1027   From Benoit Belley:
1028
1029   - Fix the --keep-going flag so it builds all possible targets even when
1030     a later top-level target depends on a child that failed its build.
1031
1032   - Fix being able to use $PDB and $WINDWOWS_INSERT_MANIFEST together.
1033
1034   - Don't crash if un-installing the Intel C compiler leaves left-over,
1035     dangling entries in the Windows registry.
1036
1037   - Improve support for non-standard library prefixes and suffixes by
1038     stripping all prefixes/suffixes from file name string as appropriate.
1039
1040   - Reduce the default stack size for -j worker threads to 256 Kbytes.
1041     Provide user control over this value by adding --stack-size and
1042     --warn=stack-size options, and a SetOption('stack_size') function.
1043
1044   - Fix a crash on Linux systems when trying to use the Intel C compiler
1045     and no /opt/intel_cc_* directories are found.
1046
1047   - Improve using Python functions as actions by incorporating into
1048     a FunctionAction's signature:
1049       - literal values referenced by the byte code.
1050       - values of default arguments
1051       - code of nested functions
1052       - values of variables captured by closures
1053       - names of referenced global variables and functions
1054
1055   - Fix the closing message when --clean and --keep-going are both
1056     used and no errors occur.
1057
1058   - Add support for the Intel C compiler on Mac OS X.
1059
1060   - Speed up reading SConscript files by about 20% (for some
1061     configurations) by:  1) optimizing the SCons.Util.is_*() and
1062     SCons.Util.flatten() functions; 2) avoiding unnecessary os.stat()
1063     calls by using a File's .suffix attribute directly instead of
1064     stringifying it.
1065
1066   From Jérôme Berger:
1067
1068   - Have the D language scanner search for .di files as well as .d files.
1069
1070   - Add a find_include_names() method to the Scanner.Classic class to
1071     abstract out how included names can be generated by subclasses.
1072
1073   - Allow the D language scanner to detect multiple modules imported by
1074     a single statement.
1075
1076   From Konstantin Bozhikov:
1077
1078   - Support expansion of construction variables that contain or refer
1079     to lists of other variables or Nodes within expansions like $CPPPATH.
1080
1081   - Change variable substitution (the env.subst() method) so that an
1082     input sequence (list or tuple) is preserved as a list in the output.
1083
1084   From David Cournapeau:
1085
1086   - Add a CheckDeclaration() call to configure contexts.
1087
1088   - Improve the CheckTypeSize() code.
1089
1090   - Add a Define() call to configure contexts, to add arbitrary #define
1091     lines to a generated configure header file.
1092
1093   - Add a "gfortran" Tool module for the GNU F95/F2003 compiler.
1094
1095   - Avoid use of -rpath with the Mac OS X linker.
1096
1097   - Add comment lines to the generated config.h file to describe what
1098     the various #define/#undef lines are doing.
1099
1100   From Steven Knight:
1101
1102   - Support the ability to subclass the new-style "str" class as input
1103     to Builders.
1104
1105   - Improve the performance of our type-checking by using isinstance()
1106     with new-style classes.
1107
1108   - Fix #include (and other $*PATH variables searches) of files with
1109     absolute path names.  Don't die if they don't exist (due to being
1110     #ifdef'ed out or the like).
1111
1112   - Fix --interactive mode when Default(None) is used.
1113
1114   - Fix --debug=memoizer to work around a bug in base Python 2.2 metaclass
1115     initialization (by just not allowing Memoization in Python versions
1116     that have the bug).
1117
1118   - Have the "scons-time time" subcommand handle empty log files, and
1119     log files that contain no results specified by the --which option.
1120
1121   - Fix the max Y of vertical bars drawn by "scons-time --fmt=gnuplot".
1122
1123   - On Mac OS X, account for the fact that the header file generated
1124     from a C++ file will be named (e.g.) file.cpp.h, not file.hpp.
1125
1126   - Fix floating-point numbers confusing the Java parser about
1127     generated .class file names in some configurations.
1128
1129   - Document (nearly) all the values you can now fetch with GetOption().
1130
1131   - Fix use of file names containing strings of multiple spaces when
1132     using ActionFactory instances like the Copy() or Move() function.
1133
1134   - Fix a 0.97 regression when using a variable expansion (like
1135     $OBJSUFFIX) in a source file name to a builder with attached source
1136     builders that match suffix (like Program()+Object()).
1137
1138   - Have the Java parser recognize generics (surrounded by angle brackets)
1139     so they don't interfere with identifying anonymous inner classes.
1140
1141   - Avoid an infinite loop when trying to use saved copies of the
1142     env.Install() or env.InstallAs() after replacing the method
1143     attributes.
1144
1145   - Improve the performance of setting construction variables.
1146
1147   - When cloning a construction environment, avoid over-writing an
1148     attribute for an added method if the user explicitly replaced it.
1149
1150   - Add a warning about deprecated support for Python 1.5, 2.0 and 2.1.
1151
1152   - Fix being able to SetOption('warn', ...) in SConscript files.
1153
1154   - Add a warning about env.Copy() being deprecated.
1155
1156   - Add warnings about the --debug={dtree,stree,tree} options
1157     being deprecated.
1158
1159   - Add VariantDir() as the first step towards deprecating BuildDir().
1160     Add the keyword argument "variant_dir" as the replacement for
1161     "build_dir".
1162
1163   - Add warnings about the {Target,Source}Signatures() methods and
1164     functions being deprecated.
1165
1166   From Rob Managan:
1167
1168   - Enhance TeX and LaTeX support to work with BuildDir(duplicate=0).
1169
1170   - Re-run LaTeX when it issues a package warning that it must be re-run.
1171
1172   From Leanid Nazdrynau:
1173
1174   - Have the Copy() action factory preserve file modes and times
1175     when copying individual files.
1176
1177   From Jan Nijtmans:
1178
1179   - If $JARCHDIR isn't set explicitly, use the .java_classdir attribute
1180     that was set when the Java() Builder built the .class files.
1181
1182   From Greg Noel:
1183
1184   - Document the Dir(), File() and Entry() methods of Dir and File Nodes.
1185
1186   - Add the parse_flags option when creating Environments
1187
1188   From Gary Oberbrunner:
1189
1190   - Make File(), Dir() and Entry() return a list of Nodes when passed
1191     a list of names, instead of trying to make a string from the name
1192     list and making a Node from that string.
1193
1194   - Fix the ability to build an Alias in --interactive mode.
1195
1196   - Fix the ability to hash the contents of actions for nested Python
1197     functions on Python versions where the inability to pickle them
1198     returns a TypeError (instead of the documented PicklingError).
1199
1200   From Jonas Olsson:
1201
1202   - Fix use of the Intel C compiler when the top compiler directory,
1203     but not the compiler version, is specified.
1204
1205   - Handle Intel C compiler network license files (port@system).
1206
1207   From Jim Randall:
1208
1209   - Fix how Python Value Nodes are printed in --debug=explain output.
1210
1211   From Adam Simpkins:
1212
1213   - Add a --interactive option that starts a session for building (or
1214     cleaning) targets without re-reading the SConscript files every time.
1215
1216   - Fix use of readline command-line editing in --interactive mode.
1217
1218   - Have the --interactive mode "build" command with no arguments
1219     build the specified Default() targets.
1220
1221   - Fix the Chmod(), Delete(), Mkdir() and Touch() Action factories to
1222     take a list (of Nodes or strings) as arguments.
1223
1224   From Vaclav Smilauer:
1225
1226   - Fix saving and restoring an Options value of 'all' on Python
1227     versions where all() is a builtin function.
1228
1229   From Daniel Svensson:
1230
1231   - Code correction in SCons.Util.is_List().
1232
1233   From Ben Webb:
1234
1235   - Support the SWIG %module statement with following modifiers in
1236     parenthese (e.g., '%module(directors="1")').
1237
1238
1239
1240 RELEASE 0.97.0d20071212 - Wed, 12 Dec 2007 09:29:32 -0600
1241
1242   From Benoit Belley:
1243
1244   - Fix occasional spurious rebuilds and inefficiency when using
1245     --implicit-cache and Builders that produce multiple targets.
1246
1247   - Allow SCons to not have to know about the builders of generated
1248     files when BuildDir(duplicate=0) is used, potentially allowing some
1249     SConscript files to be ignored for smaller builds.
1250
1251   From David Cournapeau:
1252
1253   - Add a CheckTypeSize() call to configure contexts.
1254
1255   From Ken Deeter:
1256
1257   - Make the "contents" of Alias Nodes a concatenation of the children's
1258     content signatures (MD5 checksums), not a concatenation of the
1259     children's contents, to avoid using large amounts of memory during
1260     signature calculation.
1261
1262   From Malte Helmert:
1263
1264   - Fix a lot of typos in the man page and User's Guide.
1265
1266   From Geoffrey Irving:
1267
1268   - Speed up conversion of paths in .sconsign files to File or Dir Nodes.
1269
1270   From Steven Knight:
1271
1272   - Add an Options.UnknownOptions() method that returns any settings
1273     (from the command line, or whatever dictionary was passed in)
1274     that aren't known to the Options object.
1275
1276   - Add a Glob() function.
1277
1278   - When removing targets with the -c option, use the absolute path (to
1279     avoid problems interpreting BuildDir() when the top-level directory
1280     is the source directory).
1281
1282   - Fix problems with Install() and InstallAs() when called through a
1283     clone (of a clone, ...) of a cloned construction environment.
1284
1285   - When executing a file containing Options() settings, add the file's
1286     directory to sys.path (so modules can be imported from there) and
1287     explicity set __name__ to the name of the file so the statement's
1288     in the file can deduce the location if they need to.
1289
1290   - Fix an O(n^2) performance problem when adding sources to a target
1291     through calls to a multi Builder (including Aliases).
1292
1293   - Redefine the $WINDOWSPROGMANIFESTSUFFIX and
1294     $WINDOWSSHLIBMANIFESTSUFFIX variables so they pick up changes to
1295     the underlying $SHLIBSUFFIX and $PROGSUFFIX variables.
1296
1297   - Add a GetBuildFailures() function that can be called from functions
1298     registered with the Python atexit module to print summary information
1299     about any failures encountered while building.
1300
1301   - Return a NodeList object, not a Python list, when a single_source
1302     Builder like Object() is called with more than one file.
1303
1304   - When searching for implicit dependency files in the directories
1305     in a $*PATH list, don't create Dir Nodes for directories that
1306     don't actually exist on-disk.
1307
1308   - Add a Requires() function to allow the specification of order-only
1309     prerequisites, which will be updated before specified "downstream"
1310     targets but which don't actually cause the target to be rebuilt.
1311
1312   - Restore the FS.{Dir,File,Entry}.rel_path() method.
1313
1314   - Make the default behavior of {Source,Target}Signatures('timestamp')
1315     be equivalent to 'timestamp-match', not 'timestamp-newer'.
1316
1317   - Fix use of CacheDir with Decider('timestamp-newer') by updating
1318     the modification time when copying files from the cache.
1319
1320   - Fix random issues with parallel (-j) builds on Windows when Python
1321     holds open file handles (especially for SCons temporary files,
1322     or targets built by Python function actions) across process creation.
1323
1324   From Maxim Kartashev:
1325
1326   - Fix test scripts when run on Solaris.
1327
1328   From Gary Oberbrunner:
1329
1330   - Fix Glob() when a pattern is in an explicitly-named subdirectory.
1331
1332   From Philipp Scholl:
1333
1334   - Fix setting up targets if multiple Package builders are specified
1335     at once.
1336
1337
1338
1339 RELEASE 0.97.0d20070918 - Tue, 18 Sep 2007 10:51:27 -0500
1340
1341   From Steven Knight:
1342
1343   - Fix the wix Tool module to handle null entries in $PATH variables.
1344
1345   - Move the documentation of Install() and InstallAs() from the list
1346     of functions to the list of Builders (now that they're implemented
1347     as such).
1348
1349   - Allow env.CacheDir() to be set per construction environment.  The
1350     global CacheDir() function now sets an overridable global default.
1351
1352   - Add an env.Decider() method and a Node.Decider() method that allow
1353     flexible specification of an arbitrary function to decide if a given
1354     dependency has changed since the last time a target was built.
1355
1356   - Don't execute Configure actions (while reading SConscript files)
1357     when cleaning (-c) or getting help (-h or -H).
1358
1359   - Add to each target an implicit dependency on the external command(s)
1360     used to build the target, as found by searching env['ENV']['PATH']
1361     for the first argument on each executed command line.
1362
1363   - Add support for a $IMPLICIT_COMMAND_DEPENDENCIES construction
1364     variabe that can be used to disable the automatic implicit
1365     dependency on executed commands.
1366
1367   - Add an "ensure_suffix" keyword to Builder() definitions that, when
1368     true, will add the configured suffix to the targets even if it looks
1369     like they already have a different suffix.
1370
1371   - Add a Progress() function that allows for calling a function or string
1372     (or list of strings) to display progress while walking the DAG.
1373
1374   - Allow ParseConfig(), MergeFlags() and ParseFlags() to handle output
1375     from a *config command with quoted path names that contain spaces.
1376
1377   - Make the Return() function stop processing the SConscript file and
1378     return immediately.  Add a "stop=" keyword argument that can be set
1379     to False to preserve the old behavior.
1380
1381   - Fix use of exitstatfunc on an Action.
1382
1383   - Introduce all man page function examples with "Example:" or "Examples:".
1384
1385   - When a file gets added to a directory, make sure the directory gets
1386     re-scanned for the new implicit dependency.
1387
1388   - Fix handling a file that's specified multiple times in a target
1389     list so that it doesn't cause dependent Nodes to "disappear" from
1390     the dependency graph walk.
1391
1392   From Carsten Koch:
1393
1394   - Avoid race conditions with same-named files and directory creation
1395     when pushing copies of files to CacheDir().
1396
1397   From Tzvetan Mikov:
1398
1399   - Handle $ in Java class names.
1400
1401   From Gary Oberbrunner:
1402
1403   - Add support for the Intel C compiler on Windows64.
1404
1405   - On SGI IRIX, have $SHCXX use $CXX by default (like other platforms).
1406
1407   From Sohail Somani:
1408
1409   - When Cloning a construction environment, set any variables before
1410     applying tools (so the tool module can access the configured settings)
1411     and re-set them after (so they end up matching what the user set).
1412
1413   From Matthias Troffaes:
1414
1415   - Make sure extra auxiliary files generated by some LaTeX packages
1416     and not ending in .aux also get deleted by scons -c.
1417
1418   From Greg Ward:
1419
1420   - Add a $JAVABOOTCLASSPATH variable for directories to be passed to the
1421     javac -bootclasspath option.
1422
1423   From Christoph Wiedemann:
1424
1425   - Add implicit dependencies on the commands used to build a target.
1426
1427
1428
1429
1430 RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500
1431
1432   From Lars Albertsson:
1433
1434   - Don't error if a #include line happens to match a directory
1435     somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).
1436
1437   From Mark Bertoglio:
1438
1439   - Fix listing multiple projects in Visual Studio 7.[01] solution files,
1440     including generating individual project GUIDs instead of re-using
1441     the solution GUID.
1442
1443   From Jean Brouwers:
1444
1445   - Add /opt/SUNWspro/bin to the default execution PATH on Solaris.
1446
1447   From Allan Erskine:
1448
1449   - Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c
1450     files if the /proxy and /dlldata switches are used (respectively).
1451
1452   From Steven Knight:
1453
1454   - Have --debug=explain report if a target is being rebuilt because
1455     AlwaysBuild() is specified (instead of "unknown reasons").
1456
1457   - Support {Get,Set}Option('help') to make it easier for SConscript
1458     files to tell if a help option (-h, --help, etc.) has been specified.
1459
1460   - Support {Get,Set}Option('random') so random-dependency interaction
1461     with CacheDir() is controllable from SConscript files.
1462
1463   - Add a new AddOption() function to support user-defined command-
1464     line flags (like --prefix=, --force, etc.).
1465
1466   - Push and retrieve built symlinks to/from a CacheDir() as actual
1467     symlinks, not by copying the file contents.
1468
1469   - Fix how the Action module handles stringifying the shared library
1470     generator in the Tool/mingw.py module.
1471
1472   - When generating a config.h file, print "#define HAVE_{FEATURE} 1"
1473     instad of just "#define HAVE_{FEATURE}", for more compatibility
1474     with Autoconf-style projects.
1475
1476   - Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
1477     Visual C/C++ PDB file names.
1478
1479   - Fix locating Visual C/C++ PDB files in build directories.
1480
1481   - Support an env.AddMethod() method and an AddMethod() global function
1482     for adding a new method, respectively, to a construction environment
1483     or an arbitrary object (such as a class).
1484
1485   - Fix the --debug=time option when the -j option is specified and all
1486     files are up to date.
1487
1488   - Add a $SWIGOUTDIR variable to allow setting the swig -outdir option,
1489     and use it to identify files created by the swig -java option.
1490
1491   - Add a $SWIGPATH variable that specifies the path to be searched
1492     for included SWIG files, Also add related $SWIGINCPREFIX and
1493     $SWIGINCSUFFIX variables that specify the prefix and suffix to
1494     be be added to each $SWIGPATH directory when expanded on the SWIG
1495     command line.
1496
1497   - More efficient copying of construction environments (mostly borrowed
1498     from copy.deepcopy() in the standard Python library).
1499
1500   - When printing --tree=prune output, don't print [brackets] around
1501     source files, only do so for built targets with children.
1502
1503   - Fix interpretation of Builder source arguments when the Builder has
1504     a src_suffix *and* a source_builder and the argument has no suffix.
1505
1506   - Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the
1507     following construction variables:  $FORTRANMODDIR, $JARCHDIR,
1508     $JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.
1509
1510   - Fix dependencies on Java files generated by SWIG so they can be
1511     detected and built in one pass.
1512
1513   - Fix SWIG when used with a BuildDir().
1514
1515   From Leanid Nazdrynau:
1516
1517   - When applying Tool modules after a construction environment has
1518     already been created, don't overwrite existing $CFILESUFFIX and
1519     $CXXFILESUFFIX value.
1520
1521   - Support passing the Java() builder a list of explicit .java files
1522     (not only a list of directories to be scanned for .java files).
1523
1524   - Support passing .java files to the Jar() and JavaH() builders, which
1525     then use the builder underlying the Java() builder to turn them into
1526     .class files.  (That is, the Jar()-Java() chain of builders become
1527     multi-step, like the Program()-Object()-CFile() builders.)
1528
1529   - Support passing SWIG .i files to the Java builders (Java(),
1530     Jar(), JavaH()), to cause intermediate .java files to be created
1531     automatically.
1532
1533   - Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to
1534     the javac "-classpath" and "-sourcepath" options.  (Note that SCons
1535     does *not* currently search these paths for implicit dependencies.)
1536
1537   - Commonize initialization of Java-related builders.
1538
1539   From Jan Nijtmans:
1540
1541   - Find Java anonymous classes when the next token after the name is
1542     an open parenthesis.
1543
1544   From Gary Oberbrunner:
1545
1546   - Fix a code example in the man page.
1547
1548   From Tilo Prutz:
1549
1550   - Add support for the file names that Java 1.5 (and 1.6) generates for
1551     nested anonymous inner classes, which are different from Java 1.4.
1552
1553   From Adam Simpkins:
1554
1555   - Allow worker threads to terminate gracefully when all jobs are
1556     finished.
1557
1558   From Sohail Somani:
1559
1560   - Add LaTeX scanner support for finding dependencies specified with
1561     the \usepackage{} directive.
1562
1563
1564
1565 RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500
1566
1567   From Steven Knight:
1568
1569   - Fix a bug that would make parallel builds stop in their tracks if
1570     Nodes that depended on lists that contained some Nodes built together
1571     caused the reference count to drop below 0 if the Nodes were visited
1572     and commands finished in the wrong order.
1573
1574   - Make sure the DirEntryScanner doesn't choke if it's handed something
1575     that's not a directory (Node.FS.Dir) Node.
1576
1577
1578
1579 RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
1580
1581   NOTE:  This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
1582
1583   From Joe Bloggs:
1584
1585   - Man page fix:  remove cut-and-paste sentence in NoCache() description.
1586
1587   From Dmitry Grigorenko and Gary Oberbrunner:
1588
1589   - Use the Intel C++ compiler, not $CC, to link C++ source.
1590
1591   From Helmut Grohne:
1592
1593   - Fix the man page example of propagating a user's external environment.
1594
1595   From Steven Knight:
1596
1597   - Back out (most of) the Windows registry installer patch, which
1598     seems to not work on some versions of Windows.
1599
1600   - Don't treat Java ".class" attributes as defining an inner class.
1601
1602   - Fix detecting an erroneous Java anonymous class when the first
1603     non-skipped token after a "new" keyword is a closing brace.
1604
1605   - Fix a regression when a CPPDEFINES list contains a tuple, the second
1606     item of which (the option value) is a construction variable expansion
1607     (e.g. $VALUE) and the value of the variable isn't a string.
1608
1609   - Improve the error message if an IOError (like trying to read a
1610     directory as a file) occurs while deciding if a node is up-to-date.
1611
1612   - Fix "maximum recursion" / "unhashable type" errors in $CPPPATH
1613     PathList expansion if a subsidiary expansion yields a stringable,
1614     non-Node object.
1615
1616   - Generate API documentation from the docstrings (using epydoc).
1617
1618   - Fix use of --debug=presub with Actions for out-of-the-box Builders.
1619
1620   - Fix handling nested lists within $CPPPATH, $LIBPATH, etc.
1621
1622   - Fix a "builders_used" AttributeError that real-world Qt initialization
1623     triggered in the refactored suffix handling for Builders.
1624
1625   - Make the reported --debug=time timings meaningful when used with -j.
1626     Better documentation of what the times mean.
1627
1628   - User Guide updates: --random, AlwaysBuild(), --tree=,
1629     --debug=findlibs, --debug=presub, --debug=stacktrace,
1630     --taskmastertrace.
1631
1632   - Document (in both man page and User's Guide) that --implicit-cache
1633     ignores changes in $CPPPATH, $LIBPATH, etc.
1634
1635   From Jean-Baptiste Lab:
1636
1637   - Remove hard-coded dependency on Python 2.2 from Debian packaging files.
1638
1639   From Jeff Mahovsky:
1640
1641   - Handle spaces in the build target name in Visual Studio project files.
1642
1643   From Rob Managan:
1644
1645   - Re-run LaTeX after BibTeX has been re-run in response to a changed
1646     .bib file.
1647
1648   From Joel B. Mohler:
1649
1650   - Make additional TeX auxiliary files (.toc, .idx and .bbl files)
1651     Precious so their removal doesn't affect whether the necessary
1652     sections are included in output PDF or PostScript files.
1653
1654   From Gary Oberbrunner:
1655
1656   - Fix the ability to import modules in the site_scons directory from
1657     a subdirectory.
1658
1659   From Adam Simpkins:
1660
1661   - Make sure parallel (-j) builds all targets even if they show up
1662     multiple times in the child list (as a source and a dependency).
1663
1664   From Matthias Troffaes:
1665
1666   - Don't re-run TeX if the triggering strings (\makeindex, \bibliography
1667     \tableofcontents) are commented out.
1668
1669   From Richard Viney:
1670
1671   - Fix use of custom include and lib paths with Visual Studio 8.
1672
1673   - Select the default .NET Framework SDK Dir based on the version of
1674     Visual Studio being used.
1675
1676
1677
1678 RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
1679
1680   From Anatoly:
1681
1682   - Add the scons.org URL and a package description to the setup.py
1683     arguments.
1684
1685   - Have the Windows installer add a registry entry for scons.bat in the
1686     "App Paths" key, so scons.bat can be executed without adding the
1687     directory to the %PATH%.  (Python itself works this way.)
1688
1689   From Anonymous:
1690
1691   - Fix looking for default paths in Visual Studio 8.0 (and later).
1692
1693   - Add -lm to the list of default D libraries for linking.
1694
1695   From Matt Doar:
1696
1697   - Provide a more complete write-your-own-Scanner example in the man page.
1698
1699   From Ralf W. Grosse-Kunstleve:
1700
1701   - Contributed upstream Python change to our copied subprocess.py module
1702     for more efficient standard input processing.
1703
1704   From Steven Knight:
1705
1706   - Fix the Node.FS.Base.rel_path() method when the two nodes are on
1707     different drive letters.  (This caused an infinite loop when
1708     trying to write .sconsign files.)
1709
1710   - Fully support Scanners that use a dictionary to map file suffixes
1711     to other scanners.
1712
1713   - Support delayed evaluation of the $SPAWN variable to allow selection
1714     of a function via ${} string expansions.
1715
1716   - Add --srcdir as a synonym for -Y/--repository.
1717
1718   - Document limitations of #include "file.h" with Repository().
1719
1720   - Fix use of a toolpath under the source directory of a BuildDir().
1721
1722   - Fix env.Install() with a file name portion that begins with '#'.
1723
1724   - Fix ParseConfig()'s handling of multiple options in a string that's
1725     replaced a *FLAGS construction variable.
1726
1727   - Have the C++ tools initialize common C compilation variables ($CCFLAGS,
1728     $SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded.
1729
1730   From Leanid Nazdrynau:
1731
1732   - Fix detection of Java anonymous classes if a newline precedes the
1733     opening brace.
1734
1735   From Gary Oberbrunner:
1736
1737   - Document use of ${} to execute arbitrary Python code.
1738
1739   - Add support for:
1740     1) automatically adding a site_scons subdirectory (in the top-level
1741        SConstruct directory) to sys.path (PYTHONPATH);
1742     2) automatically importing site_scons/site_init.py;
1743     3) automatically adding site_scons/site_tools to the toolpath.
1744
1745   From John Pye:
1746
1747   - Change ParseConfig() to preserve white space in arguments passed in
1748     as a list.
1749
1750   From a smith:
1751
1752   - Fix adding explicitly-named Java inner class files (and any
1753     other file names that may contain a '$') to Jar files.
1754
1755   From David Vitek:
1756
1757   - Add a NoCache() function to mark targets as unsuitable for propagating
1758     to (or retrieving from) a CacheDir().
1759
1760   From Ben Webb:
1761
1762   - If the swig -noproxy option is used, it won't generate a .py file,
1763     so don't emit it as a target that we expect to be built.
1764
1765
1766
1767 RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600
1768
1769   NOTE:  This is a pre-release of 0.97 for testing purposes.
1770
1771   From Anonymous:
1772
1773   - Allow arbitrary white space after a SWIG %module declaration.
1774
1775   From Paul:
1776
1777   - When compiling resources under MinGW, make sure there's a space
1778     between the --include-dir option and its argument.
1779
1780   From Jay Kint:
1781
1782   - Alleviate long command line issues on Windows by executing command
1783     lines directly via os.spawnv() if the command line doesn't need
1784     shell interpretation (has no pipes, redirection, etc.).
1785
1786   From Walter Franzini:
1787
1788   - Exclude additional Debian packaging files from the copyright check.
1789
1790   From Fawad Halim:
1791
1792   - Handle the conflict between the impending Python 2.6 'as' keyword
1793     and our Tool/as.py module name.
1794
1795   From Steven Knight:
1796
1797   - Speed up the Node.FS.Dir.rel_path() method used to generate path names
1798     that get put into the .sconsign* file(s).
1799
1800   - Optimize Node.FS.Base.get_suffix() by computing the suffix once, up
1801     front, when we set the Node's name.  (Duh...)
1802
1803   - Reduce the Memoizer's responsibilities to simply counting hits and
1804     misses when the --debug=memoizer option is used, not to actually
1805     handling the key calculation and memoization itself.  This speeds
1806     up some configurations significantly, and should cause no functional
1807     differences.
1808
1809   - Add a new scons-time script with subcommands for generating
1810     consistent timing output from SCons configurations, extracting
1811     various information from those timings, and displaying them in
1812     different formats.
1813
1814   - Reduce some unnecessary stat() calls from on-disk entry type checks.
1815
1816   - Fix SideEffect() when used with -j, which was badly broken in 0.96.93.
1817
1818   - Propagate TypeError exceptions when evaluating construction variable
1819     expansions up the stack, so users can see what's going on.
1820
1821   - When disambiguating a Node.FS.Entry into a Dir or File, don't look
1822     in the on-disk source directory until we've confirmed there's no
1823     on-disk entry locally and there *is* one in the srcdir.  This avoids
1824     creating a phantom Node that can interfere with dependencies on
1825     directory contents.
1826
1827   - Add an AllowSubstExceptions() function that gives the SConscript
1828     files control over what exceptions cause a string to expand to ''
1829     vs. terminating processing with an error.
1830
1831   - Allow the f90.py and f95.py Tool modules to compile earlier source
1832     source files of earlier Fortran version.
1833
1834   - Fix storing signatures of files retrieved from CacheDir() so they're
1835     correctly identified as up-to-date next invocation.
1836
1837   - Make sure lists of computed source suffixes cached by Builder objects
1838     don't persist across changes to the list of source Builders (so the
1839     addition of suffixes like .ui by the qt.py Tool module take effect).
1840
1841   - Enhance the bootstrap.py script to allow it to be used to execute
1842     SCons more easily from a checked-out source tree.
1843
1844   From Ben Leslie:
1845
1846   - Fix post-Memoizer value caching misspellings in Node.FS._doLookup().
1847
1848   From Rob Managan, Dmitry Mikhin and Joel B. Mohler:
1849
1850   - Handle TeX/LaTeX files in subdirectories by changing directory
1851     before invoking TeX/LaTeX.
1852
1853   - Scan LaTeX files for \bibliography lines.
1854
1855   - Support multiple file names in a "\bibliography{file1,file2}" string.
1856
1857   - Handle TeX warnings about undefined citations.
1858
1859   - Support re-running LaTeX if necessary due to a Table of Contents.
1860
1861   From Dmitry Mikhin:
1862
1863   - Return LaTeX if "Rerun to get citations correct" shows up on the next
1864     line after the "Warning:" string.
1865
1866   From Gary Oberbrunner:
1867
1868   - Add #include lines to fix portability issues in two tests.
1869
1870   - Eliminate some unnecessary os.path.normpath() calls.
1871
1872   - Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS
1873     for options common to C and C++.
1874
1875   From Tom Parker:
1876
1877   - Have the error message print the missing file that Qt can't find.
1878
1879   From John Pye:
1880
1881   - Fix env.MergeFlags() appending to construction variable value of None.
1882
1883   From Steve Robbins:
1884
1885   - Fix the "sconsign" script when the .sconsign.dblite file is explicitly
1886     specified on the command line (and not intuited from the old way of
1887     calling it with just ".sconsign").
1888
1889   From Jose Pablo Ezequiel "Pupeno" Fernandez Silva:
1890
1891   - Give the 'lex' tool knowledge of the additional target files produced
1892     by the flex "--header-file=" and "--tables-file=" options.
1893
1894   - Give the 'yacc' tool knowledge of the additional target files produced
1895     by the bison "-g", "--defines=" and "--graph=" options.
1896
1897   - Generate intermediate files with Objective C file suffixes (.m) when
1898     the lex and yacc source files have appropriate suffixes (.lm and .ym).
1899
1900   From Sohail Somain:
1901
1902   - Have the mslink.py Tool only look for a 'link' executable on Windows
1903     systems.
1904
1905   From Vaclav Smilauer:
1906
1907   - Add support for a "srcdir" keyword argument when calling a Builder,
1908     which will add a srcdir prefix to all non-relative string sources.
1909
1910   From Jonathan Ultis:
1911
1912   - Allow Options converters to take the construction environment as
1913     an optional argument.
1914
1915
1916
1917 RELEASE 0.96.93 - Mon, 06 Nov 2006 00:44:11 -0600
1918
1919   NOTE:  This is a pre-release of 0.97 for testing purposes.
1920
1921   From Anonymous:
1922
1923   - Allow Python Value Nodes to be Builder targets.
1924
1925   From Matthias:
1926
1927   - Only filter Visual Studio common filename prefixes on complete
1928     directory names.
1929
1930   From Chad Austin:
1931
1932   - Fix the build of the SCons documentation on systems that don't
1933     have "python" in the $PATH.
1934
1935   From Ken Boortz:
1936
1937   - Enhance ParseConfig() to recognize options that begin with '+'.
1938
1939   From John Calcote, Elliot Murphy:
1940
1941   - Document ways to override the CCPDBFLAGS variable to use the
1942     Microsoft linker's /Zi option instead of the default /Z7.
1943
1944   From Christopher Drexler:
1945
1946   - Make SCons aware bibtex must be called if any \include files
1947     cause creation of a bibliography.
1948
1949   - Make SCons aware that "\bilbiography" in TeX source files means
1950     that related .bbl and .blg bibliography files will be created.
1951     (NOTE:  This still needs to search for the string in \include files.)
1952
1953   From David Gruener:
1954
1955   - Fix inconsistent handling of Action strfunction arguments.
1956
1957   - Preserve white space in display Action strfunction strings.
1958
1959   From James Y. Knight and Gerard Patel:
1960
1961   - Support creation of shared object files from assembly language.
1962
1963   From Steven Knight:
1964
1965   - Speed up the Taskmaster significantly by avoiding unnecessary
1966     re-scans of Nodes to find out if there's work to be done, having it
1967     track the currently-executed top-level target directly and not
1968     through its presence on the target list, and eliminating some other
1969     minor list(s), method(s) and manipulation.
1970
1971   - Fix the expansion of $TARGET and $SOURCE in the expansion of
1972     $INSTALLSTR displayed for non-environment calls to InstallAs().
1973
1974   - Fix the ability to have an Alias() call refer to a directory
1975     name that's not identified as a directory until later.
1976
1977   - Enhance runtest.py with an option to use QMTest as the harness.
1978     This will become the default behavior as we add more functionality
1979     to the QMTest side.
1980
1981   - Let linking on mingw use the default function that chooses $CC (gcc)
1982     or $CXX (g++) depending on whether there are any C++ source files.
1983
1984   - Work around a bug in early versions of the Python 2.4 profile module
1985     that caused the --profile= option to fail.
1986
1987   - Only call Options validators and converters once when initializing a
1988     construction environment.
1989
1990   - Fix the ability of env.Append() and env.Prepend(), in all known Python
1991     versions, to handle different input value types when the construction
1992     variable being updated is a dictionary.
1993
1994   - Add a --cache-debug option for information about what files it's
1995     looking for in a CacheDir().
1996
1997   - Document the difference in construction variable expansion between
1998     {Action,Builder}() and env.{Action,Builder}().
1999
2000   - Change the name of env.Copy() to env.Clone(), keeping the old name
2001     around for backwards compatibility (with the intention of eventually
2002     phasing it out to avoid confusion with the Copy() Action factory).
2003
2004   From Arve Knudsen:
2005
2006   - Support cleaning and scanning SWIG-generated files.
2007
2008   From Carsten Koch:
2009
2010   - Allow selection of Visual Studio version by setting $MSVS_VERSION
2011     after construction environment initialization.
2012
2013   From Jean-Baptiste Lab:
2014
2015   - Try using zipimport if we can't import Tool or Platform modules
2016     using the normal "imp" module.  This allows SCons to be packaged
2017     using py2exe's all-in-one-zip-file approach.
2018
2019   From Ben Liblit:
2020
2021   - Do not re-scan files if the scanner returns no implicit dependencies.
2022
2023   From Sanjoy Mahajan:
2024
2025   - Change use of $SOURCES to $SOURCE in all TeX-related Tool modules.
2026
2027   From Joel B. Mohler:
2028
2029   - Make SCons aware that "\makeindex" in TeX source files means that
2030     related .ilg, .ind and .idx index files will be created.
2031     (NOTE:  This still needs to search for the string in \include files.)
2032
2033   - Prevent scanning the TeX .aux file for additional files from
2034     trying to remove it twice when the -c option is used.
2035
2036   From Leanid Nazdrynau:
2037
2038   - Give the MSVC RES (resource) Builder a src_builder list and a .rc
2039     src_suffix so other builders can generate .rc files.
2040
2041   From Matthew A. Nicholson:
2042
2043   - Enhance Install() and InstallAs() to handle directory trees as sources.
2044
2045   From Jan Nijtmans:
2046
2047   - Don't use the -fPIC flag when using gcc on Windows (e.g. MinGW).
2048
2049   From Greg Noel:
2050
2051   - Add an env.ParseFlags() method that provides separate logic for
2052     parsing GNU tool chain flags into a dictionary.
2053
2054   - Add an env.MergeFlags() method to apply an arbitrary dictionary
2055     of flags to a construction environment's variables.
2056
2057   From Gary Oberbrunner:
2058
2059   - Fix parsing tripartite Intel C compiler version numbers on Linux.
2060
2061   - Extend the ParseConfig() function to recognize -arch and
2062     -isysroot options.
2063
2064   - Have the error message list the known suffixes when a Builder call
2065     can't build a source file with an unknown suffix.
2066
2067   From Karol Pietrzak:
2068
2069   - Avoid recursive calls to main() in the program snippet used by the
2070     SConf subsystem to test linking against libraries.  This changes the
2071     default behavior of CheckLib() and CheckLibWithHeader() to print
2072     "Checking for C library foo..." instead of "Checking for main()
2073     in C library foo...".
2074
2075   From John Pye:
2076
2077   - Throw an exception if a command called by ParseConfig() or
2078     ParseFlags() returns an error.
2079
2080   From Stefan Seefeld:
2081
2082   - Initial infrastructure for running SCons tests under QMTest.
2083
2084   From Sohail Somani:
2085
2086   - Fix tests that fail due to gcc warnings.
2087
2088   From Dobes Vandermeer:
2089
2090   - In stack traces, print the full paths of SConscript files.
2091
2092   From Atul Varma:
2093
2094   - Fix detection of Visual C++ Express Edition.
2095
2096   From Dobes Vandermeer:
2097
2098   - Let the src_dir option to the SConscript() function affect all the
2099     the source file paths, instead of treating all source files paths
2100     as relative to the SConscript directory itself.
2101
2102   From Nicolas Vigier:
2103
2104   - Fix finding Fortran modules in build directories.
2105
2106   - Fix use of BuildDir() when the source file in the source directory
2107     is a symlink with a relative path.
2108
2109   From Edward Wang:
2110
2111   - Fix the Memoizer when the SCons Python modules are executed from
2112     .pyo files at different locations from where they were compiled.
2113
2114   From Johan Zander:
2115
2116   - Fix missing os.path.join() when constructing the $FRAMEWORKSDKDIR/bin.
2117
2118
2119
2120 RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
2121
2122   NOTE:  This was a pre-release of 0.97 for testing purposes.
2123
2124   From Anonymous:
2125
2126   - Fix the intelc.py Tool module to not throw an exception if the
2127     only installed version is something other than ia32.
2128
2129   - Set $CCVERSION when using gcc.
2130
2131   From Matthias:
2132
2133   - Support generating project and solution files for Microsoft
2134     Visual Studio version 8.
2135
2136   - Support generating more than one project file for a Microsoft
2137     Visual Studio solution file.
2138
2139   - Add support for a support "runfile" parameter to Microsoft
2140     Visual Studio project file creation.
2141
2142   - Put the project GUID, not the solution GUID, in the right spot
2143     in the solution file.
2144
2145   From Erling Andersen:
2146
2147   - Fix interpretation of Node.FS objects wrapped in Proxy instances,
2148     allowing expansion of things like ${File(TARGET)} in command lines.
2149
2150   From Stanislav Baranov:
2151
2152   - Add a separate MSVSSolution() Builder, with support for the
2153     following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM,
2154     $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM,
2155     $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM.
2156
2157   From Ralph W. Grosse-Kunstleve and Patrick Mezard:
2158
2159   - Remove unneceesary (and incorrect) SCons.Util strings on some function
2160     calls in SCons.Util.
2161
2162   From Bob Halley:
2163
2164   - Fix C/C++ compiler selection on AIX to not always use the external $CC
2165     environment variable.
2166
2167   From August Hörandl:
2168
2169   - Add a scanner for \include and \import files, with support for
2170     searching a directory list in $TEXINPUTS (imported from the external
2171     environment).
2172
2173   - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and
2174     $MAKEINDEXFLAGS for generating indices from .idx files.
2175
2176   From Steven Johnson:
2177
2178   - Add a NoClean() Environment method and function to override removal
2179     of targets during a -c clean, including documentation and tests.
2180
2181   From Steven Knight:
2182
2183   - Check for whether files exist on disk by listing the directory
2184     contents, not calling os.path.exists() file by file.  This is
2185     somewhat more efficient in general, and may be significantly
2186     more efficient on Windows.
2187
2188   - Minor speedups in the internal is_Dict(), is_List() and is_String()
2189     functions.
2190
2191   - Fix a signature refactoring bug that caused Qt header files to
2192     get re-generated every time.
2193
2194   - Don't fail when writing signatures if the .sconsign.dblite file is
2195     owned by a different user (e.g. root) from a previous run.
2196
2197   - When deleting variables from stacked OverrideEnvironments, don't
2198     throw a KeyError if we were able to delte the variable from any
2199     Environment in the stack.
2200
2201   - Get rid of the last indentation tabs in the SCons source files and
2202     add -tt to the Python invocations in the packaging build and the
2203     tests so they don't creep back in.
2204
2205   - In Visual Studio project files, put quotes around the -C directory
2206     so everything works even if the path has spaces in it.
2207
2208   - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
2209     when building object files on Windows.  Have the the ifort Tool
2210     modify the default command lines appropriately.
2211
2212   - Document the --debug=explain option in the man page.  (How did we
2213     miss this?)
2214
2215   - Add a $LATEXRETRIES variable to allow configuration of the number of
2216     times LaTex can be re-called to try to resolve undefined references.
2217
2218   - Change the order of the arguments to Configure.Checklib() to match
2219     the documentation.
2220
2221   - Handle signature calculation properly when the Python function used
2222     for a FunctionAction is an object method.
2223
2224   - On Windows, assume that absolute path names without a drive letter
2225     refer to the drive on which the SConstruct file lives.
2226
2227   - Add /usr/ccs/bin to the end of the the default external execution
2228     PATH on Solaris.
2229
2230   - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
2231     for the SunPRO C++ compiler.  Make the default value for $PKGCHK
2232     be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
2233     execution $PATH).
2234
2235   - Fix a man page example of overriding variables when calling
2236     SharedLibrary() to also set the $LIBSUFFIXES variable.
2237
2238   - Add a --taskmastertrace=FILE option to give some insight on how
2239     the taskmaster decides what Node to build next.
2240
2241   - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
2242     $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
2243     new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
2244     $WINDOWSIMPLIBPREFIX construction variables.  The old names are now
2245     deprecated, but preserved for backwards compatibility.
2246
2247   - Fix (?) a runtest.py hang on Windows when the --xml option is used.
2248
2249   - Change the message when an error occurs trying to interact with the
2250     file system to report the target(s) in square brackets (as before) and
2251     the actual file or directory that encountered the error afterwards.
2252
2253   From Chen Lee:
2254
2255   - Add x64 support for Microsoft Visual Studio 8.
2256
2257   From Baptiste Lepilleur:
2258
2259   - Support the --debug=memory option on Windows when the Python version
2260     has the win32process and win32api modules.
2261
2262   - Add support for Visual Studio 2005 Pro.
2263
2264   - Fix portability issues in various tests: test/Case.py,
2265     Test/Java/{JAR,JARCHDIR,JARFLAGS,JAVAC,JAVACFLAGS,JAVAH,RMIC}.py,
2266     test/MSVS/vs-{6.0,7.0,7.1,8.0}-exec.py,
2267     test/Repository/{Java,JavaH,RMIC}.py,
2268     test/QT/{generated-ui,installed,up-to-date,warnings}.py,
2269     test/ZIP/ZIP.py.
2270
2271   - Ignore pkgchk errors on Solaris when searching for the C++ compiler.
2272
2273   - Speed up the SCons/EnvironmentTests.py unit tests.
2274
2275   - Add a --verbose= option to runtest.py to print executed commands
2276     and their output at various levels.
2277
2278   From Christian Maaser:
2279
2280   - Add support for Visual Studio Express Editions.
2281
2282   - Add support for Visual Studio 8 *.manifest files, includng
2283     new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
2284     $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
2285     $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
2286     construction variables.
2287
2288   From Adam MacBeth:
2289
2290   - Fix detection of additional Java inner classes following use of a
2291     "new" keyword inside an inner class.
2292
2293   From Sanjoy Mahajan:
2294
2295   - Correct TeX-related command lines to just $SOURCE, not $SOURCES
2296
2297   From Patrick Mezard:
2298
2299   - Execute build commands for a command-line target if any of the
2300     files built along with the target is out of date or non-existent,
2301     not just if the command-line target itself is out of date.
2302
2303   - Fix the -n option when used with -c to print all of the targets
2304     that will be removed for a multi-target Builder call.
2305
2306   - If there's no file in the source directory, make sure there isn't
2307     one in the build directory, too, to avoid dangling files left
2308     over from previous runs when a source file is removed.
2309
2310   - Allow AppendUnique() and PrependUnique() to append strings (and
2311     other atomic objects) to lists.
2312
2313   From Joel B. Mohler:
2314
2315   - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building
2316     from both TeX and LaTeX files uses the same logic to call $BIBTEX
2317     when it's necessary, to call $MAKEINDEX when it's necessary, and to
2318     call $TEX or $LATEX multiple times to handle undefined references.
2319
2320   - Add an emitter to the various TeX builders so that the generated
2321     .aux and .log files also get deleted by the -c option.
2322
2323   From Leanid Nazdrynau:
2324
2325   - Fix the Qt UIC scanner to work with generated .ui files (by using
2326     the FindFile() function instead of checking by-hand for the file).
2327
2328   From Jan Nieuwenhuizen:
2329
2330   - Fix a problem with interpreting quoted argument lists on command lines.
2331
2332   From Greg Noel:
2333
2334   - Add /sw/bin to the default execution PATH on Mac OS X.
2335
2336   From Kian Win Ong:
2337
2338   - When building a .jar file and there is a $JARCHDIR, put the -C
2339     in front of each .class file on the command line.
2340
2341   - Recognize the Java 1.5 enum keyword.
2342
2343   From Asfand Yar Qazi:
2344
2345   - Add /opt/bin to the default execution PATH on all POSIX platforms
2346     (between /usr/local/bin and /bin).
2347
2348   From Jon Rafkind:
2349
2350   - Fix the use of Configure() contexts from nested subsidiary
2351     SConscript files.
2352
2353   From Christoph Schulz:
2354
2355   - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control
2356     the directory and logs for configuration tests.
2357
2358   - Add support for a $INSTALLSTR variable.
2359
2360   - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes
2361     a bug when setting $ARCOMSTR).
2362
2363   From Amir Szekely:
2364
2365   - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW.
2366
2367   From Erick Tryzelaar:
2368
2369   - Fix the error message when trying to report that a given option is
2370     not gettable/settable from an SConscript file.
2371
2372   From Dobes Vandermeer:
2373
2374   - Add support for SCC and other settings in Microsoft Visual
2375     Studio project and solution files:  $MSVS_PROJECT_BASE_PATH,
2376     $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
2377     $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
2378
2379   - Add support for using a $SCONS_HOME variable (imported from the
2380     external environment, or settable internally) to put a shortened
2381     SCons execution line in the Visual Studio project file.
2382
2383   From David J. Van Maren:
2384
2385   - Only filter common prefixes from source files names in Visual Studio
2386     project files if the prefix is a complete (sub)directory name.
2387
2388   From Thad Ward:
2389
2390   - If $MSVSVERSIONS is already set, don't overwrite it with
2391     information from the registry.
2392
2393
2394
2395 RELEASE 0.96.91 - Thu, 08 Sep 2005 07:18:23 -0400
2396
2397   NOTE:  This was a pre-release of 0.97 for testing purposes.
2398
2399   From Chad Austin:
2400
2401   - Have the environment store the toolpath and re-use it to find Tools
2402     modules during later Copy() or Tool() calls (unless overridden).
2403
2404   - Normalize the directory path names in SConsignFile() database
2405     files so the same signature file can interoperate on Windows and
2406     non-Windows systems.
2407
2408   - Make --debug=stacktrace print a stacktrace when a UserError is thrown.
2409
2410   - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py.
2411
2412   From Stanislav Baranov:
2413
2414   - Make it possible to support with custom Alias (sub-)classes.
2415
2416   - Allow Builders to take empty source lists when called.
2417
2418   - Allow access to both TARGET and SOURCE in $*PATH expansions.
2419
2420   - Allow SConscript files to modify BUILD_TARGETS.
2421
2422   From Timothee Besset:
2423
2424   - Add support for Objective C/C++ .m and .mm file suffixes (for
2425     Mac OS X).
2426
2427   From Charles Crain
2428
2429   - Fix the PharLap linkloc.py module to use target+source arguments
2430     when calling env.subst().
2431
2432   From Bjorn Eriksson:
2433
2434   - Fix an incorrect Command() keyword argument in the man page.
2435
2436   - Add a $TEMPFILEPREFIX variable to control the prefix or flag used
2437     to pass a long-command-line-execution tempfile to a command.
2438
2439   From Steven Knight:
2440
2441   - Enhanced the SCons setup.py script to install man pages on
2442     UNIX/Linux systems.
2443
2444   - Add support for an Options.FormatOptionHelpText() method that can
2445     be overridden to customize the format of Options help text.
2446
2447   - Add a global name for the Entry class (which had already been
2448     documented).
2449
2450   - Fix re-scanning of generated source files for implicit dependencies
2451     when the -j option is used.
2452
2453   - Fix a dependency problem that caused $LIBS scans to not be added
2454     to all of the targets in a multiple-target builder call, which
2455     could cause out-of-order builds when the -j option is used.
2456
2457   - Store the paths of source files and dependencies in the .sconsign*
2458     file(s) relative to the target's directory, not relative to the
2459     top-level SConstruct directory.  This starts to make it possible to
2460     subdivide the dependency tree arbitrarily by putting an SConstruct
2461     file in every directory and using content signatures.
2462
2463   - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables
2464     that accomodate parser generators that write header files to a
2465     different suffix than the hard-coded .hpp when the -d option is used.
2466
2467   - The default behavior is now to store signature information in a
2468     single .sconsign.dblite file in the top-level SConstruct directory.
2469     The old behavior of a separate .sconsign file in each directory can
2470     be specified by calling SConsignFile(None).
2471
2472   - Remove line number byte codes within the signature calculation
2473     of Python function actions, so that changing the location of an
2474     otherwise unmodified Python function doesn't cause rebuilds.
2475
2476   - Fix AddPreAction() and AddPostAction() when an action has more than
2477     one target file:  attach the actions to the Executor, not the Node.
2478
2479   - Allow the source directory of a BuildDir / build_dir to be outside
2480     of the top-level SConstruct directory tree.
2481
2482   - Add a --debug=nomemoizer option that disables the Memoizer for clearer
2483     looks at the counts and profiles of the underlying function calls,
2484     not the Memoizer wrappers.
2485
2486   - Print various --debug= stats even if we exit early (e.g. using -h).
2487
2488   - Really only use the cached content signature value if the file
2489     is older than --max-drift, not just if --max-drift is set.
2490
2491   - Remove support for conversion from old (pre 0.96) .sconsign formats.
2492
2493   - Add support for a --diskcheck option to enable or disable various
2494     on-disk checks:  that File and Dir nodes match on-disk entries;
2495     whether an RCS file exists for a missing source file; whether an
2496     SCCS file exists for a missing source file.
2497
2498   - Add a --raw argument to the sconsign script, so it can print a
2499     raw representation of each entry's NodeInfo dictionary.
2500
2501   - Add the 'f90' and 'f95' tools to the list of Fortran compilers
2502     searched for by default.
2503
2504   - Add the +Z option by default when compiling shared objects on
2505     HP-UX.
2506
2507   From Chen Lee:
2508
2509   - Handle Visual Studio project and solution files in Unicode.
2510
2511   From Sanjoy Mahajan:
2512
2513   - Fix a bad use of Copy() in an example in the man page, and a
2514     bad regular expression example in the man page and User's Guide.
2515
2516   From Shannon Mann:
2517
2518   - Have the Visual Studio project file(s) echo "Starting SCons" before
2519     executing SCons, mainly to work around a quote-stripping bug in
2520     (some versions of?) the Windows cmd command executor.
2521
2522   From Georg Mischler:
2523
2524   - Remove the space after the -o option when invoking the Borland
2525     BCC compiler; some versions apparently require that the file name
2526     argument be concatenated with the option.
2527
2528   From Leanid Nazdrynau:
2529
2530   - Fix the Java parser's handling of backslashes in strings.
2531
2532   From Greg Noel:
2533
2534   - Add construction variables to support frameworks on Mac OS X:
2535     $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX.
2536
2537   - Re-order link lines so the -o option always comes right after the
2538     command name.
2539
2540   From Gary Oberbrunner:
2541
2542   - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions).
2543
2544   - Document the new $FRAMEWORK* variables for Mac OS X.
2545
2546   From Karol Pietrzak:
2547
2548   - Add $RPATH (-R) support to the Sun linker Tool (sunlink).
2549
2550   - Add a description of env.subst() to the man page.
2551
2552   From Chris Prince:
2553
2554   - Look in the right directory, not always the local directory, for a
2555     same-named file or directory conflict on disk.
2556
2557   - On Windows, preserve the external environment's %SYSTEMDRIVE%
2558     variable, too.
2559
2560   From Craig Scott:
2561
2562   - Have the Fortran module emitter look for Fortan modules to be created
2563     relative to $FORTRANMODDIR, not the top-level directory.
2564
2565   - When saving Options to a file, run default values through the
2566     converter before comparing them with the set values.  This correctly
2567     suppresses Boolean Option values from getting written to the saved
2568     file when they're one of the many synonyms for a default True or
2569     False value.
2570
2571   - Fix the Fortran Scanner's ability to handle a module being used
2572     in the same file in which it is defined.
2573
2574   From Steve-o:
2575
2576   - Add the -KPIC option by default when compiling shared objects on
2577     Solaris.
2578
2579   - Change the default suffix for Solaris objects to .o, to conform to
2580     Sun WorkShop's expectations.  Change the profix to so_ so they can
2581     still be differentiated from static objects in the same directory.
2582
2583   From Amir Szekely:
2584
2585   - When calling the resource compiler on MinGW, add --include-dir and
2586     the source directory so it finds the source file.
2587
2588   - Update EnsureSConsVersion() to support revision numbers.
2589
2590   From Greg Ward:
2591
2592   - Fix a misplaced line in the man page.
2593
2594
2595
2596 RELEASE 0.96.90 - Tue, 15 Feb 2005 21:21:12 +0000
2597
2598   NOTE:  This was a pre-release of 0.97 for testing purposes.
2599
2600   From Anonymous:
2601
2602   - Fix Java parsing to avoid erroneously identifying a new array
2603     of class instances as an anonymous inner class.
2604
2605   - Fix a typo in the man page description of PathIsDirCreate.
2606
2607   From Chad Austin:
2608
2609   - Allow Help() to be called multiple times, appending to the help
2610     text each call.
2611
2612   - Allow Tools found on a toolpath to import Python modules from
2613     their local directory.
2614
2615   From Steve Christensen:
2616
2617   - Handle exceptions from Python functions as build actions.
2618
2619   - Add a set of canned PathOption validators:  PathExists (the default),
2620     PathIsFile, PathIsDir and PathIsDirCreate.
2621
2622   From Matthew Doar:
2623
2624   - Add support for .lex and .yacc file suffixes for Lex and Yacc files.
2625
2626   From Eric Frias:
2627
2628   - Huge performance improvement:  wrap the tuples representing an
2629     include path in an object, so that the time it takes to hash the
2630     path doesn't grow porportionally to the length of the path.
2631
2632   From Gottfried Ganssauge:
2633
2634   - Fix SCons on SuSE/AMD-64 Linux by having the wrapper script also
2635     check for the build engine in the parent directory of the Python
2636     library directory (/usr/lib64 instead of /usr/lib).
2637
2638   From Stephen Kennedy:
2639
2640   - Speed up writing the .sconsign file at the end of a run by only
2641     calling sync() once at the end, not after every entry.
2642
2643   From Steven Knight:
2644
2645   - When compiling with Microsoft Visual Studio, don't include the ATL and
2646     MFC directories in the default INCLUDE and LIB environment variables.
2647
2648   - Remove the following deprecated features:  the ParseConfig()
2649     global function (deprecated in 0.93); the misspelled "validater"
2650     keyword to the Options.Add() method (deprecated in 0.91); the
2651     SetBuildSignatureType(), SetContentSignatureType(), SetJobs() and
2652     GetJobs() global functions (deprecated in 0.14).
2653
2654   - Fix problems with corrupting the .sconsign.dblite file when
2655     interrupting builds by writing to a temporary file and renaming,
2656     not writing the file directly.
2657
2658   - Fix a 0.96 regression where when running with -k, targets built from
2659     walking dependencies later on the command line would not realize
2660     that a dependency had failed an earlier build attempt, and would
2661     try to rebuild the dependent targets.
2662
2663   - Change the final messages when using -k and errors occur from
2664     "{building,cleaning} terminated because of errors" to "done
2665     {building,cleaning} targets (errors occurred during {build,clean})."
2666
2667   - Allow Configure.CheckFunc() to take an optional header argument
2668     (already supported by Conftest.py) to specify text at the top of
2669     the compiled test file.
2670
2671   - Fix the --debug=explain output when a Python function action changed
2672     so it prints a meaningful string, not the binary representation of
2673     the function contents.
2674
2675   - Allow a ListOption's default value(s) to be a Python list of specified
2676     values, not just a string containing a comma-separated list of names.
2677
2678   - Add a ParseDepends() function that will parse up a list of explicit
2679     dependencies from a "make depend" style file.
2680
2681   - Support the ability to change directory when executing an Action
2682     through "chdir" keyword arguments to Action and Builder creation
2683     and calls.
2684
2685   - Fix handling of Action ojects (and other callables that don't match
2686     our calling arguments) in construction variable expansions.
2687
2688   - On Win32, install scons.bat in the Python directory when installing
2689     from setup.py.  (The bdist_wininst installer was already doing this.)
2690
2691   - Fix env.SConscript() when called with a list of SConscipt files.
2692     (The SConscript() global function already worked properly.)
2693
2694   - Add a missing newline to the end of the --debug=explain "unknown
2695     reasons" message.
2696
2697   - Enhance ParseConfig() to work properly for spaces in between the -I,
2698     -L and -l options and their arguments.
2699
2700   - Packaging build fix:  Rebuild the files that are use to report the
2701     --version of SCons whenever the development version number changes.
2702
2703   - Fix the ability to specify a target_factory of Dir() to a Builder,
2704     which the default create-a-directory Builder was interfering with.
2705
2706   - Mark a directory as built if it's created as part of the preparation
2707     for another target, to avoid trying to build it again when it comes
2708     up in the target list.
2709
2710   - Allow a function with the right calling signature to be put directly
2711     in an Environment's BUILDERS dictionary, making for easier creation
2712     and use of wrappers (pseudo-Builders) that call other Builders.
2713
2714   - On Python 2.x, wrap lists of Nodes returned by Builders in a UserList
2715     object that adds a method that makes str() object return a string
2716     with all of the Nodes expanded to their path names.  (Builders under
2717     Python 1.5.2 still return lists to avoid TypeErrors when trying
2718     to extend() list, so Python 1.5.2 doesn't get pretty-printing of Node
2719     lists, but everything should still function.)
2720
2721   - Allow Aliases to have actions that will be executed whenever
2722     any of the expanded Alias targets are out of date.
2723
2724   - Fix expansion of env.Command() overrides within target and
2725     source file names.
2726
2727   - Support easier customization of what's displayed by various default
2728     actions by adding lots of new construction variables: $ARCOMSTR,
2729     $ASCOMSTR, $ASPPCOMSTR, $BIBTEXCOMSTR, $BITKEEPERCOMSTR, $CCCOMSTR,
2730     $CVSCOMSTR, $CXXCOMSTR, $DCOMSTR, $DVIPDFCOMSTR, $F77COMSTR,
2731     $F90COMSTR, $F95COMSTR, $FORTRANCOMSTR, $GSCOMSTR, $JARCOMSTR,
2732     $JAVACCOMSTR, $JAVAHCOMSTR, $LATEXCOMSTR, $LEXCOMSTR, $LINKCOMSTR,
2733     $M4COMSTR, $MIDLCOMSTR, $P4COMSTR, $PCHCOMSTR, $PDFLATEXCOMSTR,
2734     $PDFTEXCOMSTR, $PSCOMSTR, $QT_MOCFROMCXXCOMSTR, $QT_MOCFROMHCOMSTR,
2735     $QT_UICCOMSTR, $RCCOMSTR, $REGSVRCOMSTR, $RCS_COCOMSTR, $RMICCOMSTR,
2736     $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR, $SHF90COMSTR,
2737     $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR, $SWIGCOMSTR,
2738     $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
2739
2740   - Add an optional "map" keyword argument to ListOption() that takes a
2741     dictionary to map user-specified values to legal values from the list
2742     (like EnumOption() already doee).
2743
2744   - Add specific exceptions to try:-except: blocks without any listed,
2745     so that they won't catch and mask keyboard interrupts.
2746
2747   - Make --debug={tree,dtree,stree} print something even when there's
2748     a build failure.
2749
2750   - Fix how Scanners sort the found dependencies so that it doesn't
2751     matter whether the dependency file is in a Repository or not.
2752     This may cause recompilations upon upgrade to this version.
2753
2754   - Make AlwaysBuild() work with Alias and Python value Nodes (making
2755     it much simpler to support aliases like "clean" that just invoke
2756     an arbitrary action).
2757
2758   - Have env.ParseConfig() use AppendUnique() by default to suppress
2759     duplicate entries from multiple calls.  Add a "unique" keyword
2760     argument to allow the old behavior to be specified.
2761
2762   - Allow the library modules imported by an SConscript file to get at
2763     all of the normally-available global functions and variables by saying
2764     "from SCons.Script import *".
2765
2766   - Add a --debug=memoizer option to print Memoizer hit/mass statistics.
2767
2768   - Allow more than one --debug= option to be set at a time.
2769
2770   - Change --debug=count to report object counts before and after
2771     reading SConscript files and before and after building targets.
2772
2773   - Change --debug=memory output to line up the numbers and to better
2774     match (more or less) the headers on the --debug=count columns.
2775
2776   - Speed things up when there are lists of targets and/or sources by
2777     getting rid of some N^2 walks of the lists involved.
2778
2779   - Cache evaluation of LazyActions so we don't create a new object
2780     for each invocation.
2781
2782   - When scanning, don't create Nodes for include files that don't
2783     actually exist on disk.
2784
2785   - Make supported global variables CScanner, DScanner, ProgramScanner and
2786     SourceFileScanner.  Make SourceFileScanner.add_scanner() a supported
2787     part of the public interface.  Keep the old SCons.Defaults.*Scan names
2788     around for a while longer since some people were already using them.
2789
2790   - By default, don't scan directories for on-disk files.  Add a
2791     DirScanner global scanner that can be used in Builders or Command()
2792     calls that want source directory trees scanned for on-disk changes.
2793     Have the Tar() and Zip() Builders use the new DirScanner to preserve
2794     the behavior of rebuilding a .tar or .zip file if any file or
2795     directory under a source tree changes.  Add Command() support for
2796     a source_scanner keyword argument to Command() that can be set to
2797     DirScanner to get this behavior.
2798
2799   - Documentation changes:  Explain that $CXXFLAGS contains $CCFLAGS
2800     by default.  Fix a bad target_factory example in the man page.
2801     Add appendices to the User's Guide to cover the available Tools,
2802     Builders and construction variables.  Comment out the build of
2803     the old Python 10 paper, which doesn't build on all systems and
2804     is old enough at this point that it probably isn't worth the
2805     effort to make it do so.
2806
2807   From Wayne Lee:
2808
2809   - Avoid "maximum recursion limit" errors when removing $(-$) pairs
2810     from long command lines.
2811
2812   From Clive Levinson:
2813
2814   - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and
2815     $CCFLAGS, and -mwindows to $LINKFLAGS.
2816
2817   From Michael McCracken:
2818
2819   - Add a new "applelink" tool to handle the things like Frameworks and
2820     bundles that Apple has added to gcc for linking.
2821
2822   - Use more appropriate default search lists of linkers, compilers and
2823     and other tools for the 'darwin' platform.
2824
2825   - Add a LoadableModule Builder that builds a bundle on Mac OS X (Darwin)
2826     and a shared library on other systems.
2827
2828   - Improve SWIG tests for use on Mac OS X (Darwin).
2829
2830   From Elliot Murphy:
2831
2832   - Enhance the tests to guarantee persistence of ListOption
2833     values in saved options files.
2834
2835   - Supply the help text when -h is used with the -u, -U or -D options.
2836
2837   From Christian Neeb:
2838
2839   - Fix the Java parser's handling of string definitions to avoid ignoring
2840     subsequent code.
2841
2842   From Han-Wen Nienhuys:
2843
2844   - Optimize variable expansion by:  using the re.sub() method (when
2845     possible); not using "eval" for variables for which we can fetch the
2846     value directory; avoiding slowing substitution logic when there's no
2847     '$' in the string.
2848
2849   From Gary Oberbrunner:
2850
2851   - Add an Environment.Dump() method to print the contents of a
2852     construction environment.
2853
2854   - Allow $LIBS (and similar variables) to contain explicit File Nodes.
2855
2856   - Change ParseConfig to add the found library names directly to the
2857     $LIBS variable, instead of returning them.
2858
2859   - Add ParseConfig() support for the -framework GNU linker option.
2860
2861   - Add a PRINT_CMD_LINE_FUNC construction variable to allow people
2862     to filter (or log) command-line output.
2863
2864   - Print an internal Python stack trace in response to an otherwise
2865     unexplained error when --debug=stacktrace is specified.
2866
2867   - Add a --debug=findlibs option to print what's happening when
2868     the scanner is searching for libraries.
2869
2870   - Allow Tool specifications to be passed a dictionary of keyword
2871     arguments.
2872
2873   - Support an Options default value of None, in which case the variable
2874     will not be added to the construction environment unless it's set
2875     explicitly by the user or from an Options file.
2876
2877   - Avoid copying __builtin__ values into a construction environment's
2878     dictionary when evaluating construction variables.
2879
2880   - Add a new cross-platform intelc.py Tool that can detect and
2881     configure the Intel C++ v8 compiler on both Windows, where it's
2882     named icl, and Linux, where it's named icc.  It also checks that
2883     the directory specified in the Windows registry exists, and sets a
2884     new $INTEL_C_COMPILER_VERSION construction variable to identify the
2885     version being used.  (Niall Douglas contributed an early prototype
2886     of parts of this module.)
2887
2888   - Fix the private Conftest._Have() function so it doesn't change
2889     non-alphanumeric characters to underscores.
2890
2891   - Supply a better error message when a construction variable expansion
2892     has an unknown attribute.
2893
2894   - Documentation changes:  Update the man page to describe use of
2895     filenames or Nodes in $LIBS.
2896
2897   From Chris Pawling:
2898
2899   - Have the linkloc tool use $MSVS_VERSION to select the Microsoft
2900     Visual Studio version to use.
2901
2902   From Kevin Quick:
2903
2904   - Fix the Builder name returned from ListBuilders and other instances
2905     of subclasses of the BuilderBase class.
2906
2907   - Add Builders and construction variables to support rpcgen:
2908     RPCGenClient(), RPCGenHeader(), RPCGenService(), RPCGenXDR(),
2909     $RPCGEN, $RPCGENFLAGS, $RPCGENCLIENTFLAGS, $RPCGENHEADERFLAGS,
2910     $RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS.
2911
2912   - Update the man page to document that prefix and suffix Builder
2913     keyword arguments can be strings, callables or dictionaries.
2914
2915   - Provide more info in the error message when a user tries to build
2916     a target multiple ways.
2917
2918   - Fix Delete() when a file doesn't exist and must_exist=1.  (We were
2919     unintentionally dependent on a bug in versions of the Python shutil.py
2920     module prior to Python 2.3, which would generate an exception for
2921     a nonexistent file even when ignore_errors was set.)
2922
2923   - Only replace a Node's builder with a non-null source builder.
2924
2925   - Fix a stack trace when a suffix selection dictionary is passed
2926     an empty source file list.
2927
2928   - Allow optional names to be attached to Builders, for default
2929     Builders that don't get attached to construction environments.
2930
2931   - Fix problems with Parallel Task Exception handling.
2932
2933   - Build targets in an associated BuildDir even if there are targets
2934     or subdirectories locally in the source directory.
2935
2936   - If a FunctionAction has a callable class as its underlying Python
2937     function, use its strfunction() method (if any) to display the
2938     action.
2939
2940   - Fix handling when BuildDir() exists but is unwriteable.  Add
2941     "Stop." to those error messages for consistency.
2942
2943   - Catch incidents of bad builder creation (without an action) and
2944     supply meaningful error messages.
2945
2946   - Fix handling of src_suffix values that aren't extensions (don't
2947     begin with a '.').
2948
2949   - Don't retrieve files from a CacheDir, but report what would happen,
2950     when the -n option is used.
2951
2952   - Use the source_scanner from the target Node, not the source node
2953     itself.
2954
2955   - Internal Scanners fixes:  Make sure Scanners are only passed Nodes.
2956     Fix how a Scanner.Selector called its base class initialization.
2957     Make comparisons of Scanner objects more robust.  Add a name to
2958     an internal default ObjSourceScanner.
2959
2960   - Add a deprecated warning for use of the old "scanner" keyword argument
2961     to Builder creation.
2962
2963   - Improve the --debug=explain message when the build action changes.
2964
2965   - Test enhancements in SourceCode.py, option-n.py, midl.py.  Better
2966     Command() and Scanner test coverage.  Improved test infrastructure
2967     for -c output.
2968
2969   - Refactor the interface between Action and Executor objects to treat
2970     Actions atomically.
2971
2972   - The --debug=presub option will now report the pre-substitution
2973     each action seprately, instead of reporting the entire list before
2974     executing the actions one by one.
2975
2976   - The --debug=explain option explaining a changed action will now
2977     (more correctly) show pre-substitution action strings, instead of
2978     the commands with substituted file names.
2979
2980   - A Node (file) will now be rebuilt if its PreAction or PostAction
2981     actions change.
2982
2983   - Python Function actions now have their calling signature (target,
2984     source, env) reported correctly when displayed.
2985
2986   - Fix BuildDir()/build_dir handling when the build_dir is underneath
2987     the source directory and trying to use entries from the build_dir
2988     as sources for other targets in the build-dir.
2989
2990   - Fix hard-coding of JDK path names in various Java tests.
2991
2992   - Handle Python stack traces consistently (stop at the SConscript stack
2993     frame, by default) even if the Python source code isn't available.
2994