Issue 1287: copy File attributes from the local Node to a Repository
[scons.git] / src / CHANGES.txt
1 # __COPYRIGHT__
2 # __FILE__ __REVISION__ __DATE__ __DEVELOPER__
3
4
5                  SCons - a software construction tool
6
7                             Change Log
8
9
10
11 RELEASE 1.X - XXX
12
13   From Matthew Wesley:
14
15     - Copy file attributes so we identify, and can link a shared library
16       from, shared object files in a Repository.
17
18
19
20 RELEASE 1.X - XXX
21
22   From Benoit Belley:
23
24     - Improve the robustness of GetBuildFailures() by refactoring
25       SCons exception handling (especially BuildError exceptions).
26
27     - Have the --taskmastertrace= option print information about
28       individual Task methods, not just the Taskmaster control flow.
29
30     - Eliminate some spurious dependency cycles by being more aggressive
31       about pruning pending children from the Taskmaster walk.
32
33   From David Cournapeau:
34
35     - Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool.
36
37   From Brad Fitzpatrick:
38
39     - Don't pre-generate an exception message (which will likely be
40       ignored anyway) when an EntryProxy re-raises an AttributeError.
41
42   From Jared Grubb:
43
44     - Clean up coding style and white space in Node/FS.py.
45
46     - Fix a typo in the documentation for $_CPPDEFFLAGS.
47
48   From Ludwig Hähne:
49
50     - Handle Java inner classes declared within a method.
51
52   From Jason Kenny:
53
54     - Suppress mistaken reports of a dependency cycle when a child
55       left on the pending list is a single Node in EXECUTED state.
56
57   From Steven Knight:
58
59     - Fix label placement by the "scons-time.py func" subcommand
60       when a profile value was close to (or equal to) 0.0.
61
62     - Fix env.Append() and env.Prepend()'s ability to add a string to
63       list-like variables like $CCFLAGS under Python 2.6.
64
65     - Other Python2.6 portability:  don't use "as" (a Python 2.6 keyword).
66       Don't use the deprecated Exception.message attribute.
67
68     - Support using the -f option to search for a different top-level
69       file name when walking up with the -D, -U or -u options.
70
71     - Fix use of VariantDir when the -n option is used and doesn't,
72       therefore, actually create the variant directory.
73
74     - Fix a stack trace from the --debug=includes option when passed a
75       static or shared library as an argument.
76
77     - Speed up the internal find_file() function (used for searching
78       CPPPATH, LIBPATH, etc.).
79
80     - Add support for using the Python "in" keyword on construction
81       environments (for example, if "CPPPATH" in env: ...).
82
83     - Fix use of Glob() when a repository or source directory contains
84       an in-memory Node without a corresponding on-disk file or directory.
85
86     - Add a warning about future reservation of $CHANGED_SOURCES,
87       $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS.
88
89     - Enable by default the existing warnings about setting the resource
90       $SOURCE, $SOURCES, $TARGET and $TARGETS variable.
91
92   From Rob Managan:
93
94     - Scan for TeX files in the paths specified in the $TEXINPUTS
95       construction variable and the $TEXINPUTS environment variable.
96
97     - Configure the PDF() and PostScript() Builders as single_source so
98       they know each source file generates a separate target file.
99
100     - Add $EPSTOPDF, $EPSTOPDFFLAGS and $EPSTOPDFCOM
101
102     - Add .tex as a valid extension for the PDF() builder.
103
104     - Add regular expressions to find \input, \include and
105       \includegraphics.
106
107     - Support generating a .pdf file from a .eps source.
108
109     - Recursive scan included input TeX files.
110
111     - Handle requiring searched-for TeX input graphics files to have
112       extensions (to avoid trying to build a .eps from itself, e.g.).
113
114   From Greg Noel:
115
116     - Make the Action() function handle positional parameters consistently.
117
118     - Clarify use of Configure.CheckType().
119
120     - Make the File.{Dir,Entry,File}() methods create their entries
121       relative to the calling File's directory, not the SConscript
122       directory.
123
124     - Use the Python os.devnull variable to discard error output when
125       looking for the $CC or $CXX version.
126
127     - Mention LoadableModule() in the SharedLibrary() documentation.
128
129   From Gary Oberbrunner:
130
131     - Update the User's Guide to clarify use of the site_scons/
132       directory and the site_init.py module.
133
134     - Make env.AppendUnique() and env.PrependUnique remove duplicates
135       within a passed-in list being added, too.
136
137   From Randall Spangler:
138
139     - Fix Glob() so an on-disk file or directory beginning with '#'
140       doesn't throw an exception.
141
142
143
144 RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700
145
146   From Chris AtLee
147
148     - Use the specified environment when checking for the GCC compiler
149       version.
150
151   From Ian P. Cardenas:
152
153     - Fix Glob() polluting LIBPATH by returning copy of list
154
155   From David Cournapeau:
156
157     - Add CheckCC, CheckCXX, CheckSHCC and CheckSHCXX tests to
158       configuration contexts.
159
160     - Have the --profile= argument use the much faster cProfile module 
161       (if it's available in the running Python version).
162
163     - Reorder MSVC compilation arguments so the /Fo is first.
164
165   From Bill Deegan:
166
167     - Add scanning Windows resource (.rc) files for implicit dependencies.
168
169   From John Gozde:
170
171     - When scanning for a #include file, don't use a directory that
172       has the same name as the file.
173
174   From Ralf W. Grosse-Kunstleve
175
176     - Suppress error output when checking for the GCC compiler version.
177
178   From Jared Grubb:
179
180     - Fix VariantDir duplication of #included files in subdirectories.
181
182   From Ludwig Hähne:
183
184     - Reduce memory usage when a directory is used as a dependency of
185       another Node (such as an Alias) by returning a concatenation
186       of the children's signatures + names, not the children's contents,
187       as the directory contents.
188
189     - Raise AttributeError, not KeyError, when a Builder can't be found.
190
191     - Invalidate cached Node information (such as the contenst returned
192       by the get_contents() method) when calling actions with Execute().
193
194     - Avoid object reference cycles from frame objects.
195
196     - Reduce memory usage from Null Executor objects.
197
198     - Compute MD5 checksums of large files without reading the entire
199       file contents into memory.  Add a new --md5-chunksize option to
200       control the size of each chunk read into memory.
201
202   From Steven Knight:
203
204     - Fix the ability of the add_src_builder() method to add a new
205       source builder to any other builder.
206
207     - Avoid an infinite loop on non-Windows systems trying to find the
208       SCons library directory if the Python library directory does not
209       begin with the string "python".
210
211     - Search for the SCons library directory in "scons-local" (with
212       no version number) after "scons-local-{VERSION}".
213
214   From Rob Managan:
215
216     - Fix the user's ability to interrupt the TeX build chain.
217
218     - Fix the TeX builder's allowing the user to specify the target name,
219       instead of always using its default output name based on the source.
220
221     - Iterate building TeX output files until all warning are gone
222       and the auxiliary files stop changing, or until we reach the
223       (configurable) maximum number of retries.
224
225     - Add TeX scanner support for:  glossaries, nomenclatures, lists of
226       figures, lists of tables, hyperref and beamer.
227
228     - Use the $BIBINPUTS, $BSTINPUTS, $TEXINPUTS and $TEXPICTS construction
229       variables as search paths for the relevant types of input file.
230
231     - Fix building TeX with VariantDir(duplicate=0) in effect.
232
233     - Fix the LaTeX scanner to search for graphics on the TEXINPUTS path.
234
235     - Have the PDFLaTeX scanner search for .gif files as well.
236
237   From Greg Noel:
238
239     - Fix typos and format bugs in the man page.
240
241     - Add a first draft of a wrapper module for Python's subprocess
242       module.
243
244     - Refactor use of the SCons.compat module so other modules don't
245       have to import it individually.
246
247     - Add .sx as a suffix for assembly language files that use the
248       C preprocessor.
249
250   From Gary Oberbrunner:
251
252     - Make Glob() sort the returned list of Files or Nodes
253       to prevent spurious rebuilds.
254
255     - Add a delete_existing keyword argument to the AppendENVPath()
256       and PrependENVPath() Environment methods.
257
258     - Add ability to use "$SOURCE" when specifying a target to a builder
259
260   From Damyan Pepper:
261
262     - Add a test case to verify that SConsignFile() files can be
263       created in previously non-existent subdirectories.
264
265   From Jim Randall:
266
267     - Make the subdirectory in which the SConsignFile() file will
268       live, if the subdirectory doesn't already exist.
269
270   From Ali Tofigh:
271
272     - Add a test to verify duplication of files in VariantDir subdirectories.
273
274
275
276 RELEASE 1.0.1 - Sat, 06 Sep 2008 07:29:34 -0700
277
278   From Greg Noel:
279
280     - Add a FindFile() section to the User's Guide.
281
282     - Fix the FindFile() documentation in the man page.
283
284     - Fix formatting errors in the Package() description in the man page.
285
286     - Escape parentheses that appear within variable names when spawning
287       command lines using os.system().
288
289
290
291 RELEASE 1.0.0 - XXX
292
293   From Jared Grubb:
294
295     - Clear the Node state when turning a generic Entry into a Dir.
296
297   From Ludwig Hähne:
298
299     - Fix sporadic output-order failures in test/GetBuildFailures/parallel.py.
300
301     - Document the ParseDepends() function in the User's Guide.
302
303   From khomenko:
304
305     - Create a separate description and long_description for RPM packages.
306
307   From Steven Knight:
308
309     - Document the GetLaunchDir() function in the User's Guide.
310
311     - Have the env.Execute() method print an error message if the
312       executed command fails.
313
314     - Add a script for creating a standard SCons development system on
315       Ubuntu Hardy.  Rewrite subsidiary scripts for install Python and
316       SCons versions in Python (from shell).
317
318   From Greg Noel:
319
320     - Handle yacc/bison on newer Mac OS X versions creating file.hpp,
321       not file.cpp.h.
322
323     - In RPCGEN tests, ignore stderr messages from older versions of
324       rpcgen on some versions of Mac OS X.
325    
326     - Fix typos in man page descriptions of Tag() and Package(), and in
327       the scons-time man page.
328
329     - Fix documentation of SConf.CheckLibWithHeader and other SConf methods.
330
331     - Update documentation of SConscript(variant_dir) usage.
332
333     - Fix SWIG tests for (some versions of) Mac OS X.
334
335   From Jonas Olsson:
336
337     - Print the warning about -j on Windows being potentially unreliable if
338       the pywin32 extensions are unavailable or lack file handle operations.
339
340   From Jim Randall:
341
342     - Fix the env.WhereIs() method to expand construction variables.
343
344   From Rogier Schouten:
345
346     - Enable building of shared libraries with the Bordand ilink32 linker.
347
348
349
350 RELEASE 1.0.0 - Sat, 09 Aug 2008 12:19:44 -0700
351
352   From Luca Falavigna:
353
354     - Fix SCons man page indentation under Debian's man page macros.
355
356   From Steven Knight:
357
358     - Clarify the man page description of the SConscript(src_dir) argument.
359
360     - User's Guide updates:
361
362        -  Document the BUILD_TARGETS, COMMAND_LINE_TARGETS and
363           DEFAULT_TARGETS variables.
364
365        -  Document the AddOption(), GetOption() and SetOption() functions.
366
367        -  Document the Requires() function; convert to the Variables
368           object, its UnknownOptions() method, and its associated
369           BoolVariable(), EnumVariable(), ListVariable(), PackageVariable()
370           and PathVariable() functions.
371           
372        -  Document the Progress() function.
373
374        -  Reorganize the chapter and sections describing the different
375           types of environments and how they interact.  Document the
376           SetDefault() method.  Document the PrependENVPath() and
377           AppendENVPath() functions.
378
379        -  Reorganize the command-line arguments chapter.  Document the
380           ARGLIST variable.
381
382        -  Collect some miscellaneous sections into a chapter about
383           configuring build output.
384
385     - Man page updates:
386
387        -  Document suggested use of the Visual C/C++ /FC option to fix
388           the ability to double-click on file names in compilation error
389           messages.
390
391        -  Document the need to use Clean() for any SideEffect() files that
392           must be explicitly removed when their targets are removed.
393
394        -  Explicitly document use of Node lists as input to Dependency().
395
396   From Greg Noel:
397
398     - Document MergeFlags(), ParseConfig(), ParseFlags() and SideEffect()
399       in the User's Guide.
400
401   From Gary Oberbrunner:
402
403     - Document use of the GetBuildFailures() function in the User's Guide.
404
405   From Adam Simpkins:
406
407     - Add man page text clarifying the behavior of AddPreAction() and
408       AddPostAction() when called with multiple targets.
409
410   From Alexey Zezukin:
411
412     - Fix incorrectly swapped man page descriptions of the --warn= options
413       for duplicate-environment and missing-sconscript.
414
415
416
417 RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700
418
419   From Benoit Belley:
420
421   - Fix the Intel C++ compiler ABI specification for EMT64 processors.
422
423   From David Cournapeau:
424
425   - Issue a (suppressable) warning, not an error, when trying to link
426     C++ and Fortran object files into the same executable.
427
428   From Steven Knight:
429
430   - Update the scons.bat file so that it returns the real exit status
431     from SCons, even though it uses setlocal + endlocal.
432
433   - Fix the --interactive post-build messages so it doesn't get stuck
434     mistakenly reporting failures after any individual build fails.
435
436   - Fix calling File() as a File object method in some circumstances.
437
438   - Fix setup.py installation on Mac OS X so SCons gets installed
439     under /usr/lcoal by default, not in the Mac OS X Python framework.
440
441
442
443 RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700
444
445   From Benoit Belley:
446
447   - Fix calculation of signatures for Python function actions with
448     closures in Python versions before 2.5.
449
450   From David Cournapeau:
451
452   - Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS.
453
454   From Jonas Olsson:
455
456   - Fix a syntax error in the Intel C compiler support on Windows.
457
458   From Steven Knight:
459
460   - Change how we represent Python Value Nodes when printing and when
461     stored in .sconsign files (to avoid blowing out memory by storing
462     huge strings in .sconsign files after multiple runs using Configure
463     contexts cause the Value strings to be re-escaped each time).
464
465   - Fix a regression in not executing configuration checks after failure
466     of any configuration check that used the same compiler or other tool.
467
468   - Handle multiple destinations in Visual Studio 8 settings for the
469     analogues to the INCLUDE, LIBRARY and PATH variables.
470
471   From Greg Noel:
472
473   - Update man page text for VariantDir().
474
475
476
477 RELEASE 0.98.3 - Tue, 29 Apr 2008 22:40:12 -0700
478
479   From Greg Noel:
480
481   - Fix use of $CXXFLAGS when building C++ shared object files.
482
483   From Steven Knight:
484
485   - Fix a regression when a Builder's source_scanner doesn't select
486     a more specific scanner for the suffix of a specified source file.
487
488   - Fix the Options object backwards compatibility so people can still
489     "import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules.
490
491   - Fix searching for implicit dependencies when an Entry Node shows up
492     in the search path list.
493
494   From Stefano:
495
496   - Fix expansion of $FORTRANMODDIR in the default Fortran command line(s)
497     when it's set to something like ${TARGET.dir}.
498
499
500
501 RELEASE 0.98.2 - Sun, 20 Apr 2008 23:38:56 -0700
502
503   From Steven Knight:
504
505   - Fix a bug in Fortran suffix computation that would cause SCons to
506     run out of memory on Windows systems.
507
508   - Fix being able to specify --interactive mode command lines with
509     \ (backslash) path name separators on Windows.
510
511   From Gary Oberbrunner:
512
513   - Document Glob() in the User's Guide.
514
515
516
517 RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700
518
519   From Benoit Belley:
520
521   - Speed up the SCons.Util.to_string*() functions.
522
523   - Optimize various Node intialization and calculations.
524
525   - Optimize Executor scanning code.
526
527   - Optimize Taskmaster execution, including dependency-cycle checking.
528
529   - Fix the --debug=stree option so it prints its tree once, not twice.
530
531   From Johan BoulÃ:
532
533   - Fix the ability to use LoadableModule() under MinGW.
534
535   From David Cournapeau:
536
537   - Various missing Fortran-related construction variables have been added.
538
539   - SCons now uses the program specified in the $FORTRAN construction
540     variable to link Fortran object files.
541
542   - Fortran compilers on Linux (Intel, g77 and gfortran) now add the -fPIC
543     option by default when compilling shared objects.
544
545   - New 'sunf77', 'sunf90' and 'sunf95' Tool modules have been added to
546     support Sun Fortran compilers.  On Solaris, the Sun Fortran compilers
547     are used in preference to other compilers by default.
548
549   - Fortran support now uses gfortran in preference to g77.
550
551   - Fortran file suffixes are now configurable through the
552     $F77FILESUFFIXES, $F90FILESUFFIXES, $F95FILESUFFIXES and
553     $FORTRANFILESUFFIXES variables.
554
555   From Steven Knight:
556
557   - Make the -d, -e, -w and --no-print-directory options "Ignored for
558     compatibility."  (We're not going to implement them.)
559
560   - Fix a serious inefficiency in how SCons checks for whether any source
561     files are missing when a Builder call creates many targets from many
562     input source files.
563
564   - In Java projects, make the target .class files depend only on the
565     specific source .java files where the individual classes are defined.
566
567   - Don't store duplicate source file entries  in the .sconsign file so
568     we don't endlessly rebuild the target(s) for no reason.
569
570   - Add a Variables object as the first step towards deprecating the
571     Options object name.  Similarly, add BoolVariable(), EnumVariable(),
572     ListVariable(), PackageVariable() and PathVariable() functions
573     as first steps towards replacing BoolOption(), EnumOption(),
574     ListOption(), PackageOption() and PathOption().
575
576   - Change the options= keyword argument to the Environment() function
577     to variables=, to avoid confusion with SCons command-line options.
578     Continue supporting the options= keyword for backwards compatibility.
579
580   - When $SWIGFLAGS contains the -python flag, expect the generated .py
581     file to be in the same (sub)directory as the target.
582
583   - When compiling C++ files, allow $CCFLAGS settings to show up on the
584     command line even when $CXXFLAGS has been redefined.
585
586   - Fix --interactive with -u/-U/-D when a VariantDir() is used.
587
588   From Anatoly Techtonik:
589
590   - Have the scons.bat file add the script execution directory to its
591     local %PATH% on Windows, so the Python executable can be found.
592
593   From Mike Wake:
594
595   - Fix passing variable names as a list to the Return() function.
596
597   From Matthew Wesley:
598
599   - Add support for the GDC 'D' language compiler.
600
601
602
603 RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700
604
605   From Benoit Belley:
606
607   - Fix the --keep-going flag so it builds all possible targets even when
608     a later top-level target depends on a child that failed its build.
609
610   - Fix being able to use $PDB and $WINDWOWS_INSERT_MANIFEST together.
611
612   - Don't crash if un-installing the Intel C compiler leaves left-over,
613     dangling entries in the Windows registry.
614
615   - Improve support for non-standard library prefixes and suffixes by
616     stripping all prefixes/suffixes from file name string as appropriate.
617
618   - Reduce the default stack size for -j worker threads to 256 Kbytes.
619     Provide user control over this value by adding --stack-size and
620     --warn=stack-size options, and a SetOption('stack_size') function.
621
622   - Fix a crash on Linux systems when trying to use the Intel C compiler
623     and no /opt/intel_cc_* directories are found.
624
625   - Improve using Python functions as actions by incorporating into
626     a FunctionAction's signature:
627       - literal values referenced by the byte code.
628       - values of default arguments
629       - code of nested functions
630       - values of variables captured by closures
631       - names of referenced global variables and functions
632
633   - Fix the closing message when --clean and --keep-going are both
634     used and no errors occur.
635
636   - Add support for the Intel C compiler on Mac OS X.
637
638   - Speed up reading SConscript files by about 20% (for some
639     configurations) by:  1) optimizing the SCons.Util.is_*() and
640     SCons.Util.flatten() functions; 2) avoiding unnecessary os.stat()
641     calls by using a File's .suffix attribute directly instead of
642     stringifying it.
643
644   From Jérôme Berger:
645
646   - Have the D language scanner search for .di files as well as .d files.
647
648   - Add a find_include_names() method to the Scanner.Classic class to
649     abstract out how included names can be generated by subclasses.
650
651   - Allow the D language scanner to detect multiple modules imported by
652     a single statement.
653
654   From Konstantin Bozhikov:
655
656   - Support expansion of construction variables that contain or refer
657     to lists of other variables or Nodes within expansions like $CPPPATH.
658
659   - Change variable substitution (the env.subst() method) so that an
660     input sequence (list or tuple) is preserved as a list in the output.
661
662   From David Cournapeau:
663
664   - Add a CheckDeclaration() call to configure contexts.
665
666   - Improve the CheckTypeSize() code.
667
668   - Add a Define() call to configure contexts, to add arbitrary #define
669     lines to a generated configure header file.
670
671   - Add a "gfortran" Tool module for the GNU F95/F2003 compiler.
672
673   - Avoid use of -rpath with the Mac OS X linker.
674
675   - Add comment lines to the generated config.h file to describe what
676     the various #define/#undef lines are doing.
677
678   From Steven Knight:
679
680   - Support the ability to subclass the new-style "str" class as input
681     to Builders.
682
683   - Improve the performance of our type-checking by using isinstance()
684     with new-style classes.
685
686   - Fix #include (and other $*PATH variables searches) of files with
687     absolute path names.  Don't die if they don't exist (due to being
688     #ifdef'ed out or the like).
689
690   - Fix --interactive mode when Default(None) is used.
691
692   - Fix --debug=memoizer to work around a bug in base Python 2.2 metaclass
693     initialization (by just not allowing Memoization in Python versions
694     that have the bug).
695
696   - Have the "scons-time time" subcommand handle empty log files, and
697     log files that contain no results specified by the --which option.
698
699   - Fix the max Y of vertical bars drawn by "scons-time --fmt=gnuplot".
700
701   - On Mac OS X, account for the fact that the header file generated
702     from a C++ file will be named (e.g.) file.cpp.h, not file.hpp.
703
704   - Fix floating-point numbers confusing the Java parser about
705     generated .class file names in some configurations.
706
707   - Document (nearly) all the values you can now fetch with GetOption().
708
709   - Fix use of file names containing strings of multiple spaces when
710     using ActionFactory instances like the Copy() or Move() function.
711
712   - Fix a 0.97 regression when using a variable expansion (like
713     $OBJSUFFIX) in a source file name to a builder with attached source
714     builders that match suffix (like Program()+Object()).
715
716   - Have the Java parser recognize generics (surrounded by angle brackets)
717     so they don't interfere with identifying anonymous inner classes.
718
719   - Avoid an infinite loop when trying to use saved copies of the
720     env.Install() or env.InstallAs() after replacing the method
721     attributes.
722
723   - Improve the performance of setting construction variables.
724
725   - When cloning a construction environment, avoid over-writing an
726     attribute for an added method if the user explicitly replaced it.
727
728   - Add a warning about deprecated support for Python 1.5, 2.0 and 2.1.
729
730   - Fix being able to SetOption('warn', ...) in SConscript files.
731
732   - Add a warning about env.Copy() being deprecated.
733
734   - Add warnings about the --debug={dtree,stree,tree} options
735     being deprecated.
736
737   - Add VariantDir() as the first step towards deprecating BuildDir().
738     Add the keyword argument "variant_dir" as the replacement for
739     "build_dir".
740
741   - Add warnings about the {Target,Source}Signatures() methods and
742     functions being deprecated.
743
744   From Rob Managan:
745
746   - Enhance TeX and LaTeX support to work with BuildDir(duplicate=0).
747
748   - Re-run LaTeX when it issues a package warning that it must be re-run.
749
750   From Leanid Nazdrynau:
751
752   - Have the Copy() action factory preserve file modes and times
753     when copying individual files.
754
755   From Jan Nijtmans:
756
757   - If $JARCHDIR isn't set explicitly, use the .java_classdir attribute
758     that was set when the Java() Builder built the .class files.
759
760   From Greg Noel:
761
762   - Document the Dir(), File() and Entry() methods of Dir and File Nodes.
763
764   - Add the parse_flags option when creating Environments
765
766   From Gary Oberbrunner:
767
768   - Make File(), Dir() and Entry() return a list of Nodes when passed
769     a list of names, instead of trying to make a string from the name
770     list and making a Node from that string.
771
772   - Fix the ability to build an Alias in --interactive mode.
773
774   - Fix the ability to hash the contents of actions for nested Python
775     functions on Python versions where the inability to pickle them
776     returns a TypeError (instead of the documented PicklingError).
777
778   From Jonas Olsson:
779
780   - Fix use of the Intel C compiler when the top compiler directory,
781     but not the compiler version, is specified.
782
783   - Handle Intel C compiler network license files (port@system).
784
785   From Jim Randall:
786
787   - Fix how Python Value Nodes are printed in --debug=explain output.
788
789   From Adam Simpkins:
790
791   - Add a --interactive option that starts a session for building (or
792     cleaning) targets without re-reading the SConscript files every time.
793
794   - Fix use of readline command-line editing in --interactive mode.
795
796   - Have the --interactive mode "build" command with no arguments
797     build the specified Default() targets.
798
799   - Fix the Chmod(), Delete(), Mkdir() and Touch() Action factories to
800     take a list (of Nodes or strings) as arguments.
801
802   From Vaclav Smilauer:
803
804   - Fix saving and restoring an Options value of 'all' on Python
805     versions where all() is a builtin function.
806
807   From Daniel Svensson:
808
809   - Code correction in SCons.Util.is_List().
810
811   From Ben Webb:
812
813   - Support the SWIG %module statement with following modifiers in
814     parenthese (e.g., '%module(directors="1")').
815
816
817
818 RELEASE 0.97.0d20071212 - Wed, 12 Dec 2007 09:29:32 -0600
819
820   From Benoit Belley:
821
822   - Fix occasional spurious rebuilds and inefficiency when using
823     --implicit-cache and Builders that produce multiple targets.
824
825   - Allow SCons to not have to know about the builders of generated
826     files when BuildDir(duplicate=0) is used, potentially allowing some
827     SConscript files to be ignored for smaller builds.
828
829   From David Cournapeau:
830
831   - Add a CheckTypeSize() call to configure contexts.
832
833   From Ken Deeter:
834
835   - Make the "contents" of Alias Nodes a concatenation of the children's
836     content signatures (MD5 checksums), not a concatenation of the
837     children's contents, to avoid using large amounts of memory during
838     signature calculation.
839
840   From Malte Helmert:
841
842   - Fix a lot of typos in the man page and User's Guide.
843
844   From Geoffrey Irving:
845
846   - Speed up conversion of paths in .sconsign files to File or Dir Nodes.
847
848   From Steven Knight:
849
850   - Add an Options.UnknownOptions() method that returns any settings
851     (from the command line, or whatever dictionary was passed in)
852     that aren't known to the Options object.
853
854   - Add a Glob() function.
855
856   - When removing targets with the -c option, use the absolute path (to
857     avoid problems interpreting BuildDir() when the top-level directory
858     is the source directory).
859
860   - Fix problems with Install() and InstallAs() when called through a
861     clone (of a clone, ...) of a cloned construction environment.
862
863   - When executing a file containing Options() settings, add the file's
864     directory to sys.path (so modules can be imported from there) and
865     explicity set __name__ to the name of the file so the statement's
866     in the file can deduce the location if they need to.
867
868   - Fix an O(n^2) performance problem when adding sources to a target
869     through calls to a multi Builder (including Aliases).
870
871   - Redefine the $WINDOWSPROGMANIFESTSUFFIX and
872     $WINDOWSSHLIBMANIFESTSUFFIX variables so they pick up changes to
873     the underlying $SHLIBSUFFIX and $PROGSUFFIX variables.
874
875   - Add a GetBuildFailures() function that can be called from functions
876     registered with the Python atexit module to print summary information
877     about any failures encountered while building.
878
879   - Return a NodeList object, not a Python list, when a single_source
880     Builder like Object() is called with more than one file.
881
882   - When searching for implicit dependency files in the directories
883     in a $*PATH list, don't create Dir Nodes for directories that
884     don't actually exist on-disk.
885
886   - Add a Requires() function to allow the specification of order-only
887     prerequisites, which will be updated before specified "downstream"
888     targets but which don't actually cause the target to be rebuilt.
889
890   - Restore the FS.{Dir,File,Entry}.rel_path() method.
891
892   - Make the default behavior of {Source,Target}Signatures('timestamp')
893     be equivalent to 'timestamp-match', not 'timestamp-newer'.
894
895   - Fix use of CacheDir with Decider('timestamp-newer') by updating
896     the modification time when copying files from the cache.
897
898   - Fix random issues with parallel (-j) builds on Windows when Python
899     holds open file handles (especially for SCons temporary files,
900     or targets built by Python function actions) across process creation.
901
902   From Maxim Kartashev:
903
904   - Fix test scripts when run on Solaris.
905
906   From Gary Oberbrunner:
907
908   - Fix Glob() when a pattern is in an explicitly-named subdirectory.
909
910   From Philipp Scholl:
911
912   - Fix setting up targets if multiple Package builders are specified
913     at once.
914
915
916
917 RELEASE 0.97.0d20070918 - Tue, 18 Sep 2007 10:51:27 -0500
918
919   From Steven Knight:
920
921   - Fix the wix Tool module to handle null entries in $PATH variables.
922
923   - Move the documentation of Install() and InstallAs() from the list
924     of functions to the list of Builders (now that they're implemented
925     as such).
926
927   - Allow env.CacheDir() to be set per construction environment.  The
928     global CacheDir() function now sets an overridable global default.
929
930   - Add an env.Decider() method and a Node.Decider() method that allow
931     flexible specification of an arbitrary function to decide if a given
932     dependency has changed since the last time a target was built.
933
934   - Don't execute Configure actions (while reading SConscript files)
935     when cleaning (-c) or getting help (-h or -H).
936
937   - Add to each target an implicit dependency on the external command(s)
938     used to build the target, as found by searching env['ENV']['PATH']
939     for the first argument on each executed command line.
940
941   - Add support for a $IMPLICIT_COMMAND_DEPENDENCIES construction
942     variabe that can be used to disable the automatic implicit
943     dependency on executed commands.
944
945   - Add an "ensure_suffix" keyword to Builder() definitions that, when
946     true, will add the configured suffix to the targets even if it looks
947     like they already have a different suffix.
948
949   - Add a Progress() function that allows for calling a function or string
950     (or list of strings) to display progress while walking the DAG.
951
952   - Allow ParseConfig(), MergeFlags() and ParseFlags() to handle output
953     from a *config command with quoted path names that contain spaces.
954
955   - Make the Return() function stop processing the SConscript file and
956     return immediately.  Add a "stop=" keyword argument that can be set
957     to False to preserve the old behavior.
958
959   - Fix use of exitstatfunc on an Action.
960
961   - Introduce all man page function examples with "Example:" or "Examples:".
962
963   - When a file gets added to a directory, make sure the directory gets
964     re-scanned for the new implicit dependency.
965
966   - Fix handling a file that's specified multiple times in a target
967     list so that it doesn't cause dependent Nodes to "disappear" from
968     the dependency graph walk.
969
970   From Carsten Koch:
971
972   - Avoid race conditions with same-named files and directory creation
973     when pushing copies of files to CacheDir().
974
975   From Tzvetan Mikov:
976
977   - Handle $ in Java class names.
978
979   From Gary Oberbrunner:
980
981   - Add support for the Intel C compiler on Windows64.
982
983   - On SGI IRIX, have $SHCXX use $CXX by default (like other platforms).
984
985   From Sohail Somani:
986
987   - When Cloning a construction environment, set any variables before
988     applying tools (so the tool module can access the configured settings)
989     and re-set them after (so they end up matching what the user set).
990
991   From Matthias Troffaes:
992
993   - Make sure extra auxiliary files generated by some LaTeX packages
994     and not ending in .aux also get deleted by scons -c.
995
996   From Greg Ward:
997
998   - Add a $JAVABOOTCLASSPATH variable for directories to be passed to the
999     javac -bootclasspath option.
1000
1001   From Christoph Wiedemann:
1002
1003   - Add implicit dependencies on the commands used to build a target.
1004
1005
1006
1007
1008 RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500
1009
1010   From Lars Albertsson:
1011
1012   - Don't error if a #include line happens to match a directory
1013     somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).
1014
1015   From Mark Bertoglio:
1016
1017   - Fix listing multiple projects in Visual Studio 7.[01] solution files,
1018     including generating individual project GUIDs instead of re-using
1019     the solution GUID.
1020
1021   From Jean Brouwers:
1022
1023   - Add /opt/SUNWspro/bin to the default execution PATH on Solaris.
1024
1025   From Allan Erskine:
1026
1027   - Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c
1028     files if the /proxy and /dlldata switches are used (respectively).
1029
1030   From Steven Knight:
1031
1032   - Have --debug=explain report if a target is being rebuilt because
1033     AlwaysBuild() is specified (instead of "unknown reasons").
1034
1035   - Support {Get,Set}Option('help') to make it easier for SConscript
1036     files to tell if a help option (-h, --help, etc.) has been specified.
1037
1038   - Support {Get,Set}Option('random') so random-dependency interaction
1039     with CacheDir() is controllable from SConscript files.
1040
1041   - Add a new AddOption() function to support user-defined command-
1042     line flags (like --prefix=, --force, etc.).
1043
1044   - Push and retrieve built symlinks to/from a CacheDir() as actual
1045     symlinks, not by copying the file contents.
1046
1047   - Fix how the Action module handles stringifying the shared library
1048     generator in the Tool/mingw.py module.
1049
1050   - When generating a config.h file, print "#define HAVE_{FEATURE} 1"
1051     instad of just "#define HAVE_{FEATURE}", for more compatibility
1052     with Autoconf-style projects.
1053
1054   - Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
1055     Visual C/C++ PDB file names.
1056     
1057   - Fix locating Visual C/C++ PDB files in build directories.
1058
1059   - Support an env.AddMethod() method and an AddMethod() global function
1060     for adding a new method, respectively, to a construction environment
1061     or an arbitrary object (such as a class).
1062
1063   - Fix the --debug=time option when the -j option is specified and all
1064     files are up to date.
1065
1066   - Add a $SWIGOUTDIR variable to allow setting the swig -outdir option,
1067     and use it to identify files created by the swig -java option.
1068
1069   - Add a $SWIGPATH variable that specifies the path to be searched
1070     for included SWIG files, Also add related $SWIGINCPREFIX and
1071     $SWIGINCSUFFIX variables that specify the prefix and suffix to
1072     be be added to each $SWIGPATH directory when expanded on the SWIG
1073     command line.
1074
1075   - More efficient copying of construction environments (mostly borrowed
1076     from copy.deepcopy() in the standard Python library).
1077
1078   - When printing --tree=prune output, don't print [brackets] around
1079     source files, only do so for built targets with children.
1080
1081   - Fix interpretation of Builder source arguments when the Builder has
1082     a src_suffix *and* a source_builder and the argument has no suffix.
1083
1084   - Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the
1085     following construction variables:  $FORTRANMODDIR, $JARCHDIR,
1086     $JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.
1087
1088   - Fix dependencies on Java files generated by SWIG so they can be
1089     detected and built in one pass.
1090
1091   - Fix SWIG when used with a BuildDir().
1092
1093   From Leanid Nazdrynau:
1094
1095   - When applying Tool modules after a construction environment has
1096     already been created, don't overwrite existing $CFILESUFFIX and
1097     $CXXFILESUFFIX value.
1098
1099   - Support passing the Java() builder a list of explicit .java files
1100     (not only a list of directories to be scanned for .java files).
1101
1102   - Support passing .java files to the Jar() and JavaH() builders, which
1103     then use the builder underlying the Java() builder to turn them into
1104     .class files.  (That is, the Jar()-Java() chain of builders become
1105     multi-step, like the Program()-Object()-CFile() builders.)
1106
1107   - Support passing SWIG .i files to the Java builders (Java(),
1108     Jar(), JavaH()), to cause intermediate .java files to be created
1109     automatically.
1110
1111   - Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to
1112     the javac "-classpath" and "-sourcepath" options.  (Note that SCons
1113     does *not* currently search these paths for implicit dependencies.)
1114
1115   - Commonize initialization of Java-related builders.
1116
1117   From Jan Nijtmans:
1118
1119   - Find Java anonymous classes when the next token after the name is
1120     an open parenthesis.
1121
1122   From Gary Oberbrunner:
1123
1124   - Fix a code example in the man page.
1125
1126   From Tilo Prutz:
1127
1128   - Add support for the file names that Java 1.5 (and 1.6) generates for
1129     nested anonymous inner classes, which are different from Java 1.4.
1130
1131   From Adam Simpkins:
1132
1133   - Allow worker threads to terminate gracefully when all jobs are
1134     finished.
1135
1136   From Sohail Somani:
1137
1138   - Add LaTeX scanner support for finding dependencies specified with
1139     the \usepackage{} directive.
1140
1141
1142
1143 RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500
1144
1145   From Steven Knight:
1146
1147   - Fix a bug that would make parallel builds stop in their tracks if
1148     Nodes that depended on lists that contained some Nodes built together
1149     caused the reference count to drop below 0 if the Nodes were visited
1150     and commands finished in the wrong order.
1151
1152   - Make sure the DirEntryScanner doesn't choke if it's handed something
1153     that's not a directory (Node.FS.Dir) Node.
1154
1155
1156
1157 RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500
1158
1159   NOTE:  This is (Yet) a(nother) pre-release of 0.97 for testing purposes.
1160
1161   From Joe Bloggs:
1162
1163   - Man page fix:  remove cut-and-paste sentence in NoCache() description.
1164
1165   From Dmitry Grigorenko and Gary Oberbrunner:
1166
1167   - Use the Intel C++ compiler, not $CC, to link C++ source.
1168
1169   From Helmut Grohne:
1170
1171   - Fix the man page example of propagating a user's external environment.
1172
1173   From Steven Knight:
1174
1175   - Back out (most of) the Windows registry installer patch, which
1176     seems to not work on some versions of Windows.
1177
1178   - Don't treat Java ".class" attributes as defining an inner class.
1179
1180   - Fix detecting an erroneous Java anonymous class when the first
1181     non-skipped token after a "new" keyword is a closing brace.
1182
1183   - Fix a regression when a CPPDEFINES list contains a tuple, the second
1184     item of which (the option value) is a construction variable expansion
1185     (e.g. $VALUE) and the value of the variable isn't a string.
1186
1187   - Improve the error message if an IOError (like trying to read a
1188     directory as a file) occurs while deciding if a node is up-to-date.
1189
1190   - Fix "maximum recursion" / "unhashable type" errors in $CPPPATH
1191     PathList expansion if a subsidiary expansion yields a stringable,
1192     non-Node object.
1193
1194   - Generate API documentation from the docstrings (using epydoc).
1195
1196   - Fix use of --debug=presub with Actions for out-of-the-box Builders.
1197
1198   - Fix handling nested lists within $CPPPATH, $LIBPATH, etc.
1199
1200   - Fix a "builders_used" AttributeError that real-world Qt initialization
1201     triggered in the refactored suffix handling for Builders.
1202
1203   - Make the reported --debug=time timings meaningful when used with -j.
1204     Better documentation of what the times mean.
1205
1206   - User Guide updates: --random, AlwaysBuild(), --tree=,
1207     --debug=findlibs, --debug=presub, --debug=stacktrace,
1208     --taskmastertrace.
1209
1210   - Document (in both man page and User's Guide) that --implicit-cache
1211     ignores changes in $CPPPATH, $LIBPATH, etc.
1212
1213   From Jean-Baptiste Lab:
1214
1215   - Remove hard-coded dependency on Python 2.2 from Debian packaging files.
1216
1217   From Jeff Mahovsky:
1218
1219   - Handle spaces in the build target name in Visual Studio project files.
1220
1221   From Rob Managan:
1222
1223   - Re-run LaTeX after BibTeX has been re-run in response to a changed
1224     .bib file.
1225
1226   From Joel B. Mohler:
1227
1228   - Make additional TeX auxiliary files (.toc, .idx and .bbl files)
1229     Precious so their removal doesn't affect whether the necessary
1230     sections are included in output PDF or PostScript files.
1231
1232   From Gary Oberbrunner:
1233
1234   - Fix the ability to import modules in the site_scons directory from
1235     a subdirectory.
1236
1237   From Adam Simpkins:
1238
1239   - Make sure parallel (-j) builds all targets even if they show up
1240     multiple times in the child list (as a source and a dependency).
1241
1242   From Matthias Troffaes:
1243
1244   - Don't re-run TeX if the triggering strings (\makeindex, \bibliography
1245     \tableofcontents) are commented out.
1246
1247   From Richard Viney:
1248
1249   - Fix use of custom include and lib paths with Visual Studio 8.
1250
1251   - Select the default .NET Framework SDK Dir based on the version of
1252     Visual Studio being used.
1253
1254
1255
1256 RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600
1257
1258   From Anatoly:
1259
1260   - Add the scons.org URL and a package description to the setup.py
1261     arguments.
1262
1263   - Have the Windows installer add a registry entry for scons.bat in the
1264     "App Paths" key, so scons.bat can be executed without adding the
1265     directory to the %PATH%.  (Python itself works this way.)
1266
1267   From Anonymous:
1268
1269   - Fix looking for default paths in Visual Studio 8.0 (and later).
1270
1271   - Add -lm to the list of default D libraries for linking.
1272
1273   From Matt Doar:
1274
1275   - Provide a more complete write-your-own-Scanner example in the man page.
1276
1277   From Ralf W. Grosse-Kunstleve:
1278
1279   - Contributed upstream Python change to our copied subprocess.py module
1280     for more efficient standard input processing.
1281
1282   From Steven Knight:
1283
1284   - Fix the Node.FS.Base.rel_path() method when the two nodes are on
1285     different drive letters.  (This caused an infinite loop when
1286     trying to write .sconsign files.)
1287
1288   - Fully support Scanners that use a dictionary to map file suffixes
1289     to other scanners.
1290
1291   - Support delayed evaluation of the $SPAWN variable to allow selection
1292     of a function via ${} string expansions.
1293
1294   - Add --srcdir as a synonym for -Y/--repository.
1295
1296   - Document limitations of #include "file.h" with Repository().
1297
1298   - Fix use of a toolpath under the source directory of a BuildDir().
1299
1300   - Fix env.Install() with a file name portion that begins with '#'.
1301
1302   - Fix ParseConfig()'s handling of multiple options in a string that's
1303     replaced a *FLAGS construction variable.
1304
1305   - Have the C++ tools initialize common C compilation variables ($CCFLAGS,
1306     $SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded.
1307
1308   From Leanid Nazdrynau:
1309
1310   - Fix detection of Java anonymous classes if a newline precedes the
1311     opening brace.
1312
1313   From Gary Oberbrunner:
1314
1315   - Document use of ${} to execute arbitrary Python code.
1316
1317   - Add support for:
1318     1) automatically adding a site_scons subdirectory (in the top-level
1319        SConstruct directory) to sys.path (PYTHONPATH);
1320     2) automatically importing site_scons/site_init.py;
1321     3) automatically adding site_scons/site_tools to the toolpath.
1322
1323   From John Pye:
1324
1325   - Change ParseConfig() to preserve white space in arguments passed in
1326     as a list.
1327
1328   From a smith:
1329
1330   - Fix adding explicitly-named Java inner class files (and any
1331     other file names that may contain a '$') to Jar files.
1332
1333   From David Vitek:
1334
1335   - Add a NoCache() function to mark targets as unsuitable for propagating
1336     to (or retrieving from) a CacheDir().
1337
1338   From Ben Webb:
1339
1340   - If the swig -noproxy option is used, it won't generate a .py file,
1341     so don't emit it as a target that we expect to be built.
1342
1343
1344
1345 RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600
1346
1347   NOTE:  This is a pre-release of 0.97 for testing purposes.
1348
1349   From Anonymous:
1350
1351   - Allow arbitrary white space after a SWIG %module declaration.
1352
1353   From Paul:
1354
1355   - When compiling resources under MinGW, make sure there's a space 
1356     between the --include-dir option and its argument.
1357
1358   From Jay Kint:
1359
1360   - Alleviate long command line issues on Windows by executing command
1361     lines directly via os.spawnv() if the command line doesn't need
1362     shell interpretation (has no pipes, redirection, etc.).
1363
1364   From Walter Franzini:
1365
1366   - Exclude additional Debian packaging files from the copyright check.
1367
1368   From Fawad Halim:
1369
1370   - Handle the conflict between the impending Python 2.6 'as' keyword
1371     and our Tool/as.py module name.
1372
1373   From Steven Knight:
1374
1375   - Speed up the Node.FS.Dir.rel_path() method used to generate path names
1376     that get put into the .sconsign* file(s).
1377
1378   - Optimize Node.FS.Base.get_suffix() by computing the suffix once, up
1379     front, when we set the Node's name.  (Duh...)
1380
1381   - Reduce the Memoizer's responsibilities to simply counting hits and
1382     misses when the --debug=memoizer option is used, not to actually
1383     handling the key calculation and memoization itself.  This speeds
1384     up some configurations significantly, and should cause no functional
1385     differences.
1386
1387   - Add a new scons-time script with subcommands for generating
1388     consistent timing output from SCons configurations, extracting
1389     various information from those timings, and displaying them in
1390     different formats.
1391
1392   - Reduce some unnecessary stat() calls from on-disk entry type checks.
1393
1394   - Fix SideEffect() when used with -j, which was badly broken in 0.96.93.
1395
1396   - Propagate TypeError exceptions when evaluating construction variable
1397     expansions up the stack, so users can see what's going on.
1398
1399   - When disambiguating a Node.FS.Entry into a Dir or File, don't look
1400     in the on-disk source directory until we've confirmed there's no
1401     on-disk entry locally and there *is* one in the srcdir.  This avoids
1402     creating a phantom Node that can interfere with dependencies on
1403     directory contents.
1404
1405   - Add an AllowSubstExceptions() function that gives the SConscript
1406     files control over what exceptions cause a string to expand to ''
1407     vs. terminating processing with an error.
1408
1409   - Allow the f90.py and f95.py Tool modules to compile earlier source
1410     source files of earlier Fortran version.
1411
1412   - Fix storing signatures of files retrieved from CacheDir() so they're
1413     correctly identified as up-to-date next invocation.
1414
1415   - Make sure lists of computed source suffixes cached by Builder objects
1416     don't persist across changes to the list of source Builders (so the
1417     addition of suffixes like .ui by the qt.py Tool module take effect).
1418
1419   - Enhance the bootstrap.py script to allow it to be used to execute
1420     SCons more easily from a checked-out source tree.
1421
1422   From Ben Leslie:
1423
1424   - Fix post-Memoizer value caching misspellings in Node.FS._doLookup().
1425
1426   From Rob Managan, Dmitry Mikhin and Joel B. Mohler:
1427
1428   - Handle TeX/LaTeX files in subdirectories by changing directory
1429     before invoking TeX/LaTeX.
1430
1431   - Scan LaTeX files for \bibliography lines.
1432
1433   - Support multiple file names in a "\bibliography{file1,file2}" string.
1434
1435   - Handle TeX warnings about undefined citations.
1436
1437   - Support re-running LaTeX if necessary due to a Table of Contents.
1438
1439   From Dmitry Mikhin:
1440
1441   - Return LaTeX if "Rerun to get citations correct" shows up on the next
1442     line after the "Warning:" string.
1443
1444   From Gary Oberbrunner:
1445
1446   - Add #include lines to fix portability issues in two tests.
1447
1448   - Eliminate some unnecessary os.path.normpath() calls.
1449
1450   - Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS
1451     for options common to C and C++.
1452
1453   From Tom Parker:
1454
1455   - Have the error message print the missing file that Qt can't find.
1456
1457   From John Pye:
1458
1459   - Fix env.MergeFlags() appending to construction variable value of None.
1460
1461   From Steve Robbins:
1462
1463   - Fix the "sconsign" script when the .sconsign.dblite file is explicitly
1464     specified on the command line (and not intuited from the old way of
1465     calling it with just ".sconsign").
1466
1467   From Jose Pablo Ezequiel "Pupeno" Fernandez Silva:
1468
1469   - Give the 'lex' tool knowledge of the additional target files produced
1470     by the flex "--header-file=" and "--tables-file=" options.
1471
1472   - Give the 'yacc' tool knowledge of the additional target files produced
1473     by the bison "-g", "--defines=" and "--graph=" options.
1474
1475   - Generate intermediate files with Objective C file suffixes (.m) when
1476     the lex and yacc source files have appropriate suffixes (.lm and .ym).
1477
1478   From Sohail Somain:
1479
1480   - Have the mslink.py Tool only look for a 'link' executable on Windows
1481     systems.
1482
1483   From Vaclav Smilauer:
1484
1485   - Add support for a "srcdir" keyword argument when calling a Builder,
1486     which will add a srcdir prefix to all non-relative string sources.
1487
1488   From Jonathan Ultis:
1489
1490   - Allow Options converters to take the construction environment as
1491     an optional argument.
1492
1493
1494
1495 RELEASE 0.96.93 - Mon, 06 Nov 2006 00:44:11 -0600
1496
1497   NOTE:  This is a pre-release of 0.97 for testing purposes.
1498
1499   From Anonymous:
1500
1501   - Allow Python Value Nodes to be Builder targets.
1502
1503   From Matthias:
1504
1505   - Only filter Visual Studio common filename prefixes on complete
1506     directory names.
1507
1508   From Chad Austin:
1509
1510   - Fix the build of the SCons documentation on systems that don't
1511     have "python" in the $PATH.
1512
1513   From Ken Boortz:
1514
1515   - Enhance ParseConfig() to recognize options that begin with '+'.
1516
1517   From John Calcote, Elliot Murphy:
1518
1519   - Document ways to override the CCPDBFLAGS variable to use the
1520     Microsoft linker's /Zi option instead of the default /Z7.
1521
1522   From Christopher Drexler:
1523
1524   - Make SCons aware bibtex must be called if any \include files
1525     cause creation of a bibliography.
1526
1527   - Make SCons aware that "\bilbiography" in TeX source files means
1528     that related .bbl and .blg bibliography files will be created.
1529     (NOTE:  This still needs to search for the string in \include files.)
1530
1531   From David Gruener:
1532
1533   - Fix inconsistent handling of Action strfunction arguments.
1534
1535   - Preserve white space in display Action strfunction strings.
1536
1537   From James Y. Knight and Gerard Patel:
1538
1539   - Support creation of shared object files from assembly language.
1540
1541   From Steven Knight:
1542
1543   - Speed up the Taskmaster significantly by avoiding unnecessary
1544     re-scans of Nodes to find out if there's work to be done, having it
1545     track the currently-executed top-level target directly and not
1546     through its presence on the target list, and eliminating some other
1547     minor list(s), method(s) and manipulation.
1548
1549   - Fix the expansion of $TARGET and $SOURCE in the expansion of
1550     $INSTALLSTR displayed for non-environment calls to InstallAs().
1551
1552   - Fix the ability to have an Alias() call refer to a directory
1553     name that's not identified as a directory until later.
1554
1555   - Enhance runtest.py with an option to use QMTest as the harness.
1556     This will become the default behavior as we add more functionality
1557     to the QMTest side.
1558
1559   - Let linking on mingw use the default function that chooses $CC (gcc)
1560     or $CXX (g++) depending on whether there are any C++ source files.
1561
1562   - Work around a bug in early versions of the Python 2.4 profile module
1563     that caused the --profile= option to fail.
1564
1565   - Only call Options validators and converters once when initializing a
1566     construction environment.
1567
1568   - Fix the ability of env.Append() and env.Prepend(), in all known Python
1569     versions, to handle different input value types when the construction
1570     variable being updated is a dictionary.
1571
1572   - Add a --cache-debug option for information about what files it's
1573     looking for in a CacheDir().
1574
1575   - Document the difference in construction variable expansion between
1576     {Action,Builder}() and env.{Action,Builder}().
1577
1578   - Change the name of env.Copy() to env.Clone(), keeping the old name
1579     around for backwards compatibility (with the intention of eventually
1580     phasing it out to avoid confusion with the Copy() Action factory).
1581
1582   From Arve Knudsen:
1583
1584   - Support cleaning and scanning SWIG-generated files.
1585
1586   From Carsten Koch:
1587
1588   - Allow selection of Visual Studio version by setting $MSVS_VERSION
1589     after construction environment initialization.
1590
1591   From Jean-Baptiste Lab:
1592
1593   - Try using zipimport if we can't import Tool or Platform modules
1594     using the normal "imp" module.  This allows SCons to be packaged
1595     using py2exe's all-in-one-zip-file approach.
1596
1597   From Ben Liblit:
1598
1599   - Do not re-scan files if the scanner returns no implicit dependencies.
1600
1601   From Sanjoy Mahajan:
1602
1603   - Change use of $SOURCES to $SOURCE in all TeX-related Tool modules.
1604
1605   From Joel B. Mohler:
1606
1607   - Make SCons aware that "\makeindex" in TeX source files means that
1608     related .ilg, .ind and .idx index files will be created.
1609     (NOTE:  This still needs to search for the string in \include files.)
1610
1611   - Prevent scanning the TeX .aux file for additional files from
1612     trying to remove it twice when the -c option is used.
1613
1614   From Leanid Nazdrynau:
1615
1616   - Give the MSVC RES (resource) Builder a src_builder list and a .rc
1617     src_suffix so other builders can generate .rc files.
1618
1619   From Matthew A. Nicholson:
1620
1621   - Enhance Install() and InstallAs() to handle directory trees as sources.
1622
1623   From Jan Nijtmans:
1624
1625   - Don't use the -fPIC flag when using gcc on Windows (e.g. MinGW).
1626
1627   From Greg Noel:
1628
1629   - Add an env.ParseFlags() method that provides separate logic for
1630     parsing GNU tool chain flags into a dictionary.
1631     
1632   - Add an env.MergeFlags() method to apply an arbitrary dictionary
1633     of flags to a construction environment's variables.
1634
1635   From Gary Oberbrunner:
1636
1637   - Fix parsing tripartite Intel C compiler version numbers on Linux.
1638
1639   - Extend the ParseConfig() function to recognize -arch and
1640     -isysroot options.
1641
1642   - Have the error message list the known suffixes when a Builder call
1643     can't build a source file with an unknown suffix.
1644
1645   From Karol Pietrzak:
1646
1647   - Avoid recursive calls to main() in the program snippet used by the
1648     SConf subsystem to test linking against libraries.  This changes the
1649     default behavior of CheckLib() and CheckLibWithHeader() to print
1650     "Checking for C library foo..." instead of "Checking for main()
1651     in C library foo...".
1652
1653   From John Pye:
1654
1655   - Throw an exception if a command called by ParseConfig() or
1656     ParseFlags() returns an error.
1657
1658   From Stefan Seefeld:
1659
1660   - Initial infrastructure for running SCons tests under QMTest.
1661
1662   From Sohail Somani:
1663
1664   - Fix tests that fail due to gcc warnings.
1665
1666   From Dobes Vandermeer:
1667
1668   - In stack traces, print the full paths of SConscript files.
1669
1670   From Atul Varma:
1671
1672   - Fix detection of Visual C++ Express Edition.
1673
1674   From Dobes Vandermeer:
1675
1676   - Let the src_dir option to the SConscript() function affect all the 
1677     the source file paths, instead of treating all source files paths
1678     as relative to the SConscript directory itself.
1679
1680   From Nicolas Vigier:
1681
1682   - Fix finding Fortran modules in build directories.
1683
1684   - Fix use of BuildDir() when the source file in the source directory
1685     is a symlink with a relative path.
1686
1687   From Edward Wang:
1688
1689   - Fix the Memoizer when the SCons Python modules are executed from
1690     .pyo files at different locations from where they were compiled.
1691
1692   From Johan Zander:
1693
1694   - Fix missing os.path.join() when constructing the $FRAMEWORKSDKDIR/bin.
1695
1696
1697
1698 RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400
1699
1700   NOTE:  This was a pre-release of 0.97 for testing purposes.
1701
1702   From Anonymous:
1703
1704   - Fix the intelc.py Tool module to not throw an exception if the
1705     only installed version is something other than ia32.
1706
1707   - Set $CCVERSION when using gcc.
1708
1709   From Matthias:
1710
1711   - Support generating project and solution files for Microsoft
1712     Visual Studio version 8.
1713
1714   - Support generating more than one project file for a Microsoft
1715     Visual Studio solution file.
1716
1717   - Add support for a support "runfile" parameter to Microsoft
1718     Visual Studio project file creation.
1719
1720   - Put the project GUID, not the solution GUID, in the right spot
1721     in the solution file.
1722
1723   From Erling Andersen:
1724
1725   - Fix interpretation of Node.FS objects wrapped in Proxy instances,
1726     allowing expansion of things like ${File(TARGET)} in command lines.
1727
1728   From Stanislav Baranov:
1729
1730   - Add a separate MSVSSolution() Builder, with support for the
1731     following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM,
1732     $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM,
1733     $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM.
1734
1735   From Ralph W. Grosse-Kunstleve and Patrick Mezard:
1736
1737   - Remove unneceesary (and incorrect) SCons.Util strings on some function
1738     calls in SCons.Util.
1739
1740   From Bob Halley:
1741
1742   - Fix C/C++ compiler selection on AIX to not always use the external $CC
1743     environment variable.
1744
1745   From August Hörandl:
1746
1747   - Add a scanner for \include and \import files, with support for
1748     searching a directory list in $TEXINPUTS (imported from the external
1749     environment).
1750
1751   - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and
1752     $MAKEINDEXFLAGS for generating indices from .idx files.
1753
1754   From Steven Johnson:
1755
1756   - Add a NoClean() Environment method and function to override removal
1757     of targets during a -c clean, including documentation and tests.
1758
1759   From Steven Knight:
1760
1761   - Check for whether files exist on disk by listing the directory
1762     contents, not calling os.path.exists() file by file.  This is
1763     somewhat more efficient in general, and may be significantly
1764     more efficient on Windows.
1765
1766   - Minor speedups in the internal is_Dict(), is_List() and is_String()
1767     functions.
1768
1769   - Fix a signature refactoring bug that caused Qt header files to
1770     get re-generated every time.
1771
1772   - Don't fail when writing signatures if the .sconsign.dblite file is
1773     owned by a different user (e.g. root) from a previous run.
1774
1775   - When deleting variables from stacked OverrideEnvironments, don't
1776     throw a KeyError if we were able to delte the variable from any
1777     Environment in the stack.
1778
1779   - Get rid of the last indentation tabs in the SCons source files and
1780     add -tt to the Python invocations in the packaging build and the
1781     tests so they don't creep back in.
1782
1783   - In Visual Studio project files, put quotes around the -C directory
1784     so everything works even if the path has spaces in it.
1785
1786   - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET",
1787     when building object files on Windows.  Have the the ifort Tool
1788     modify the default command lines appropriately.
1789
1790   - Document the --debug=explain option in the man page.  (How did we
1791     miss this?)
1792
1793   - Add a $LATEXRETRIES variable to allow configuration of the number of
1794     times LaTex can be re-called to try to resolve undefined references.
1795
1796   - Change the order of the arguments to Configure.Checklib() to match
1797     the documentation.
1798
1799   - Handle signature calculation properly when the Python function used
1800     for a FunctionAction is an object method.
1801
1802   - On Windows, assume that absolute path names without a drive letter
1803     refer to the drive on which the SConstruct file lives.
1804
1805   - Add /usr/ccs/bin to the end of the the default external execution
1806     PATH on Solaris.
1807
1808   - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
1809     for the SunPRO C++ compiler.  Make the default value for $PKGCHK
1810     be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
1811     execution $PATH).
1812
1813   - Fix a man page example of overriding variables when calling
1814     SharedLibrary() to also set the $LIBSUFFIXES variable.
1815
1816   - Add a --taskmastertrace=FILE option to give some insight on how
1817     the taskmaster decides what Node to build next.
1818
1819   - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
1820     $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to
1821     new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and
1822     $WINDOWSIMPLIBPREFIX construction variables.  The old names are now
1823     deprecated, but preserved for backwards compatibility.
1824
1825   - Fix (?) a runtest.py hang on Windows when the --xml option is used.
1826
1827   - Change the message when an error occurs trying to interact with the
1828     file system to report the target(s) in square brackets (as before) and
1829     the actual file or directory that encountered the error afterwards.
1830
1831   From Chen Lee:
1832
1833   - Add x64 support for Microsoft Visual Studio 8.
1834
1835   From Baptiste Lepilleur:
1836
1837   - Support the --debug=memory option on Windows when the Python version
1838     has the win32process and win32api modules.
1839
1840   - Add support for Visual Studio 2005 Pro.
1841
1842   - Fix portability issues in various tests: test/Case.py,
1843     Test/Java/{JAR,JARCHDIR,JARFLAGS,JAVAC,JAVACFLAGS,JAVAH,RMIC}.py,
1844     test/MSVS/vs-{6.0,7.0,7.1,8.0}-exec.py,
1845     test/Repository/{Java,JavaH,RMIC}.py,
1846     test/QT/{generated-ui,installed,up-to-date,warnings}.py,
1847     test/ZIP/ZIP.py.
1848
1849   - Ignore pkgchk errors on Solaris when searching for the C++ compiler.
1850
1851   - Speed up the SCons/EnvironmentTests.py unit tests.
1852
1853   - Add a --verbose= option to runtest.py to print executed commands
1854     and their output at various levels.
1855
1856   From Christian Maaser:
1857
1858   - Add support for Visual Studio Express Editions.
1859
1860   - Add support for Visual Studio 8 *.manifest files, includng
1861     new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX,
1862     $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX,
1863     $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX
1864     construction variables.
1865
1866   From Adam MacBeth:
1867
1868   - Fix detection of additional Java inner classes following use of a
1869     "new" keyword inside an inner class.
1870
1871   From Sanjoy Mahajan:
1872
1873   - Correct TeX-related command lines to just $SOURCE, not $SOURCES
1874
1875   From Patrick Mezard:
1876
1877   - Execute build commands for a command-line target if any of the
1878     files built along with the target is out of date or non-existent,
1879     not just if the command-line target itself is out of date.
1880
1881   - Fix the -n option when used with -c to print all of the targets
1882     that will be removed for a multi-target Builder call.
1883
1884   - If there's no file in the source directory, make sure there isn't
1885     one in the build directory, too, to avoid dangling files left
1886     over from previous runs when a source file is removed.
1887
1888   - Allow AppendUnique() and PrependUnique() to append strings (and
1889     other atomic objects) to lists.
1890
1891   From Joel B. Mohler:
1892
1893   - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building
1894     from both TeX and LaTeX files uses the same logic to call $BIBTEX
1895     when it's necessary, to call $MAKEINDEX when it's necessary, and to
1896     call $TEX or $LATEX multiple times to handle undefined references.
1897
1898   - Add an emitter to the various TeX builders so that the generated
1899     .aux and .log files also get deleted by the -c option.
1900
1901   From Leanid Nazdrynau:
1902
1903   - Fix the Qt UIC scanner to work with generated .ui files (by using
1904     the FindFile() function instead of checking by-hand for the file).
1905
1906   From Jan Nieuwenhuizen:
1907
1908   - Fix a problem with interpreting quoted argument lists on command lines.
1909
1910   From Greg Noel:
1911
1912   - Add /sw/bin to the default execution PATH on Mac OS X.
1913
1914   From Kian Win Ong:
1915
1916   - When building a .jar file and there is a $JARCHDIR, put the -C
1917     in front of each .class file on the command line.
1918
1919   - Recognize the Java 1.5 enum keyword.
1920
1921   From Asfand Yar Qazi:
1922
1923   - Add /opt/bin to the default execution PATH on all POSIX platforms
1924     (between /usr/local/bin and /bin).
1925
1926   From Jon Rafkind:
1927
1928   - Fix the use of Configure() contexts from nested subsidiary
1929     SConscript files.
1930
1931   From Christoph Schulz:
1932
1933   - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control
1934     the directory and logs for configuration tests.
1935
1936   - Add support for a $INSTALLSTR variable.
1937
1938   - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes
1939     a bug when setting $ARCOMSTR).
1940
1941   From Amir Szekely:
1942
1943   - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW.
1944
1945   From Erick Tryzelaar:
1946
1947   - Fix the error message when trying to report that a given option is
1948     not gettable/settable from an SConscript file.
1949
1950   From Dobes Vandermeer:
1951
1952   - Add support for SCC and other settings in Microsoft Visual
1953     Studio project and solution files:  $MSVS_PROJECT_BASE_PATH,
1954     $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH,
1955     $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER,
1956
1957   - Add support for using a $SCONS_HOME variable (imported from the
1958     external environment, or settable internally) to put a shortened
1959     SCons execution line in the Visual Studio project file.
1960
1961   From David J. Van Maren:
1962
1963   - Only filter common prefixes from source files names in Visual Studio
1964     project files if the prefix is a complete (sub)directory name.
1965
1966   From Thad Ward:
1967
1968   - If $MSVSVERSIONS is already set, don't overwrite it with
1969     information from the registry.
1970
1971
1972
1973 RELEASE 0.96.91 - Thu, 08 Sep 2005 07:18:23 -0400
1974
1975   NOTE:  This was a pre-release of 0.97 for testing purposes.
1976
1977   From Chad Austin:
1978
1979   - Have the environment store the toolpath and re-use it to find Tools
1980     modules during later Copy() or Tool() calls (unless overridden).
1981
1982   - Normalize the directory path names in SConsignFile() database
1983     files so the same signature file can interoperate on Windows and
1984     non-Windows systems.
1985
1986   - Make --debug=stacktrace print a stacktrace when a UserError is thrown.
1987
1988   - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py.
1989
1990   From Stanislav Baranov:
1991
1992   - Make it possible to support with custom Alias (sub-)classes.
1993
1994   - Allow Builders to take empty source lists when called.
1995
1996   - Allow access to both TARGET and SOURCE in $*PATH expansions.
1997
1998   - Allow SConscript files to modify BUILD_TARGETS.
1999
2000   From Timothee Besset:
2001
2002   - Add support for Objective C/C++ .m and .mm file suffixes (for
2003     Mac OS X).
2004
2005   From Charles Crain
2006
2007   - Fix the PharLap linkloc.py module to use target+source arguments
2008     when calling env.subst().
2009
2010   From Bjorn Eriksson:
2011
2012   - Fix an incorrect Command() keyword argument in the man page.
2013
2014   - Add a $TEMPFILEPREFIX variable to control the prefix or flag used
2015     to pass a long-command-line-execution tempfile to a command.
2016
2017   From Steven Knight:
2018
2019   - Enhanced the SCons setup.py script to install man pages on
2020     UNIX/Linux systems.
2021
2022   - Add support for an Options.FormatOptionHelpText() method that can
2023     be overridden to customize the format of Options help text.
2024
2025   - Add a global name for the Entry class (which had already been
2026     documented).
2027
2028   - Fix re-scanning of generated source files for implicit dependencies
2029     when the -j option is used.
2030
2031   - Fix a dependency problem that caused $LIBS scans to not be added
2032     to all of the targets in a multiple-target builder call, which
2033     could cause out-of-order builds when the -j option is used.
2034
2035   - Store the paths of source files and dependencies in the .sconsign*
2036     file(s) relative to the target's directory, not relative to the
2037     top-level SConstruct directory.  This starts to make it possible to
2038     subdivide the dependency tree arbitrarily by putting an SConstruct
2039     file in every directory and using content signatures.
2040
2041   - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables
2042     that accomodate parser generators that write header files to a
2043     different suffix than the hard-coded .hpp when the -d option is used.
2044
2045   - The default behavior is now to store signature information in a
2046     single .sconsign.dblite file in the top-level SConstruct directory.
2047     The old behavior of a separate .sconsign file in each directory can
2048     be specified by calling SConsignFile(None).
2049
2050   - Remove line number byte codes within the signature calculation
2051     of Python function actions, so that changing the location of an
2052     otherwise unmodified Python function doesn't cause rebuilds.
2053
2054   - Fix AddPreAction() and AddPostAction() when an action has more than
2055     one target file:  attach the actions to the Executor, not the Node.
2056
2057   - Allow the source directory of a BuildDir / build_dir to be outside
2058     of the top-level SConstruct directory tree.
2059
2060   - Add a --debug=nomemoizer option that disables the Memoizer for clearer
2061     looks at the counts and profiles of the underlying function calls,
2062     not the Memoizer wrappers.
2063
2064   - Print various --debug= stats even if we exit early (e.g. using -h).
2065
2066   - Really only use the cached content signature value if the file
2067     is older than --max-drift, not just if --max-drift is set.
2068
2069   - Remove support for conversion from old (pre 0.96) .sconsign formats.
2070
2071   - Add support for a --diskcheck option to enable or disable various
2072     on-disk checks:  that File and Dir nodes match on-disk entries;
2073     whether an RCS file exists for a missing source file; whether an
2074     SCCS file exists for a missing source file.
2075
2076   - Add a --raw argument to the sconsign script, so it can print a
2077     raw representation of each entry's NodeInfo dictionary.
2078
2079   - Add the 'f90' and 'f95' tools to the list of Fortran compilers
2080     searched for by default.
2081
2082   - Add the +Z option by default when compiling shared objects on
2083     HP-UX.
2084
2085   From Chen Lee:
2086
2087   - Handle Visual Studio project and solution files in Unicode.
2088
2089   From Sanjoy Mahajan:
2090
2091   - Fix a bad use of Copy() in an example in the man page, and a
2092     bad regular expression example in the man page and User's Guide.
2093
2094   From Shannon Mann:
2095
2096   - Have the Visual Studio project file(s) echo "Starting SCons" before
2097     executing SCons, mainly to work around a quote-stripping bug in
2098     (some versions of?) the Windows cmd command executor.
2099
2100   From Georg Mischler:
2101
2102   - Remove the space after the -o option when invoking the Borland
2103     BCC compiler; some versions apparently require that the file name
2104     argument be concatenated with the option.
2105
2106   From Leanid Nazdrynau:
2107
2108   - Fix the Java parser's handling of backslashes in strings.
2109
2110   From Greg Noel:
2111
2112   - Add construction variables to support frameworks on Mac OS X:
2113     $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX.
2114
2115   - Re-order link lines so the -o option always comes right after the
2116     command name.
2117
2118   From Gary Oberbrunner:
2119
2120   - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions).
2121
2122   - Document the new $FRAMEWORK* variables for Mac OS X.
2123
2124   From Karol Pietrzak:
2125
2126   - Add $RPATH (-R) support to the Sun linker Tool (sunlink).
2127
2128   - Add a description of env.subst() to the man page.
2129
2130   From Chris Prince:
2131
2132   - Look in the right directory, not always the local directory, for a
2133     same-named file or directory conflict on disk.
2134
2135   - On Windows, preserve the external environment's %SYSTEMDRIVE%
2136     variable, too.
2137
2138   From Craig Scott:
2139
2140   - Have the Fortran module emitter look for Fortan modules to be created
2141     relative to $FORTRANMODDIR, not the top-level directory.
2142
2143   - When saving Options to a file, run default values through the
2144     converter before comparing them with the set values.  This correctly
2145     suppresses Boolean Option values from getting written to the saved
2146     file when they're one of the many synonyms for a default True or
2147     False value.
2148
2149   - Fix the Fortran Scanner's ability to handle a module being used
2150     in the same file in which it is defined.
2151
2152   From Steve-o:
2153
2154   - Add the -KPIC option by default when compiling shared objects on
2155     Solaris.
2156
2157   - Change the default suffix for Solaris objects to .o, to conform to
2158     Sun WorkShop's expectations.  Change the profix to so_ so they can
2159     still be differentiated from static objects in the same directory.
2160
2161   From Amir Szekely:
2162
2163   - When calling the resource compiler on MinGW, add --include-dir and
2164     the source directory so it finds the source file.
2165
2166   - Update EnsureSConsVersion() to support revision numbers.
2167
2168   From Greg Ward:
2169
2170   - Fix a misplaced line in the man page.
2171
2172
2173
2174 RELEASE 0.96.90 - Tue, 15 Feb 2005 21:21:12 +0000
2175
2176   NOTE:  This was a pre-release of 0.97 for testing purposes.
2177
2178   From Anonymous:
2179
2180   - Fix Java parsing to avoid erroneously identifying a new array
2181     of class instances as an anonymous inner class.
2182
2183   - Fix a typo in the man page description of PathIsDirCreate.
2184
2185   From Chad Austin:
2186
2187   - Allow Help() to be called multiple times, appending to the help
2188     text each call.
2189
2190   - Allow Tools found on a toolpath to import Python modules from
2191     their local directory.
2192
2193   From Steve Christensen:
2194
2195   - Handle exceptions from Python functions as build actions.
2196
2197   - Add a set of canned PathOption validators:  PathExists (the default),
2198     PathIsFile, PathIsDir and PathIsDirCreate.
2199
2200   From Matthew Doar:
2201
2202   - Add support for .lex and .yacc file suffixes for Lex and Yacc files.
2203
2204   From Eric Frias:
2205
2206   - Huge performance improvement:  wrap the tuples representing an
2207     include path in an object, so that the time it takes to hash the
2208     path doesn't grow porportionally to the length of the path.
2209
2210   From Gottfried Ganssauge:
2211
2212   - Fix SCons on SuSE/AMD-64 Linux by having the wrapper script also
2213     check for the build engine in the parent directory of the Python
2214     library directory (/usr/lib64 instead of /usr/lib).
2215
2216   From Stephen Kennedy:
2217
2218   - Speed up writing the .sconsign file at the end of a run by only
2219     calling sync() once at the end, not after every entry.
2220
2221   From Steven Knight:
2222
2223   - When compiling with Microsoft Visual Studio, don't include the ATL and
2224     MFC directories in the default INCLUDE and LIB environment variables.
2225
2226   - Remove the following deprecated features:  the ParseConfig()
2227     global function (deprecated in 0.93); the misspelled "validater"
2228     keyword to the Options.Add() method (deprecated in 0.91); the
2229     SetBuildSignatureType(), SetContentSignatureType(), SetJobs() and
2230     GetJobs() global functions (deprecated in 0.14).
2231
2232   - Fix problems with corrupting the .sconsign.dblite file when
2233     interrupting builds by writing to a temporary file and renaming,
2234     not writing the file directly.
2235
2236   - Fix a 0.96 regression where when running with -k, targets built from
2237     walking dependencies later on the command line would not realize
2238     that a dependency had failed an earlier build attempt, and would
2239     try to rebuild the dependent targets.
2240
2241   - Change the final messages when using -k and errors occur from
2242     "{building,cleaning} terminated because of errors" to "done
2243     {building,cleaning} targets (errors occurred during {build,clean})."
2244
2245   - Allow Configure.CheckFunc() to take an optional header argument
2246     (already supported by Conftest.py) to specify text at the top of
2247     the compiled test file.
2248
2249   - Fix the --debug=explain output when a Python function action changed
2250     so it prints a meaningful string, not the binary representation of
2251     the function contents.
2252
2253   - Allow a ListOption's default value(s) to be a Python list of specified
2254     values, not just a string containing a comma-separated list of names.
2255
2256   - Add a ParseDepends() function that will parse up a list of explicit
2257     dependencies from a "make depend" style file.
2258
2259   - Support the ability to change directory when executing an Action
2260     through "chdir" keyword arguments to Action and Builder creation
2261     and calls.
2262
2263   - Fix handling of Action ojects (and other callables that don't match
2264     our calling arguments) in construction variable expansions.
2265
2266   - On Win32, install scons.bat in the Python directory when installing
2267     from setup.py.  (The bdist_wininst installer was already doing this.)
2268
2269   - Fix env.SConscript() when called with a list of SConscipt files.
2270     (The SConscript() global function already worked properly.)
2271
2272   - Add a missing newline to the end of the --debug=explain "unknown
2273     reasons" message.
2274
2275   - Enhance ParseConfig() to work properly for spaces in between the -I,
2276     -L and -l options and their arguments.
2277
2278   - Packaging build fix:  Rebuild the files that are use to report the
2279     --version of SCons whenever the development version number changes.
2280
2281   - Fix the ability to specify a target_factory of Dir() to a Builder,
2282     which the default create-a-directory Builder was interfering with.
2283
2284   - Mark a directory as built if it's created as part of the preparation
2285     for another target, to avoid trying to build it again when it comes
2286     up in the target list.
2287
2288   - Allow a function with the right calling signature to be put directly
2289     in an Environment's BUILDERS dictionary, making for easier creation
2290     and use of wrappers (pseudo-Builders) that call other Builders.
2291
2292   - On Python 2.x, wrap lists of Nodes returned by Builders in a UserList
2293     object that adds a method that makes str() object return a string
2294     with all of the Nodes expanded to their path names.  (Builders under
2295     Python 1.5.2 still return lists to avoid TypeErrors when trying
2296     to extend() list, so Python 1.5.2 doesn't get pretty-printing of Node
2297     lists, but everything should still function.)
2298
2299   - Allow Aliases to have actions that will be executed whenever
2300     any of the expanded Alias targets are out of date.
2301
2302   - Fix expansion of env.Command() overrides within target and
2303     source file names.
2304
2305   - Support easier customization of what's displayed by various default
2306     actions by adding lots of new construction variables: $ARCOMSTR,
2307     $ASCOMSTR, $ASPPCOMSTR, $BIBTEXCOMSTR, $BITKEEPERCOMSTR, $CCCOMSTR,
2308     $CVSCOMSTR, $CXXCOMSTR, $DCOMSTR, $DVIPDFCOMSTR, $F77COMSTR,
2309     $F90COMSTR, $F95COMSTR, $FORTRANCOMSTR, $GSCOMSTR, $JARCOMSTR,
2310     $JAVACCOMSTR, $JAVAHCOMSTR, $LATEXCOMSTR, $LEXCOMSTR, $LINKCOMSTR,
2311     $M4COMSTR, $MIDLCOMSTR, $P4COMSTR, $PCHCOMSTR, $PDFLATEXCOMSTR,
2312     $PDFTEXCOMSTR, $PSCOMSTR, $QT_MOCFROMCXXCOMSTR, $QT_MOCFROMHCOMSTR,
2313     $QT_UICCOMSTR, $RCCOMSTR, $REGSVRCOMSTR, $RCS_COCOMSTR, $RMICCOMSTR,
2314     $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR, $SHF90COMSTR,
2315     $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR, $SWIGCOMSTR,
2316     $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR.
2317
2318   - Add an optional "map" keyword argument to ListOption() that takes a
2319     dictionary to map user-specified values to legal values from the list
2320     (like EnumOption() already doee).
2321
2322   - Add specific exceptions to try:-except: blocks without any listed,
2323     so that they won't catch and mask keyboard interrupts.
2324
2325   - Make --debug={tree,dtree,stree} print something even when there's
2326     a build failure.
2327
2328   - Fix how Scanners sort the found dependencies so that it doesn't
2329     matter whether the dependency file is in a Repository or not.
2330     This may cause recompilations upon upgrade to this version.
2331
2332   - Make AlwaysBuild() work with Alias and Python value Nodes (making
2333     it much simpler to support aliases like "clean" that just invoke
2334     an arbitrary action).
2335
2336   - Have env.ParseConfig() use AppendUnique() by default to suppress
2337     duplicate entries from multiple calls.  Add a "unique" keyword
2338     argument to allow the old behavior to be specified.
2339
2340   - Allow the library modules imported by an SConscript file to get at
2341     all of the normally-available global functions and variables by saying
2342     "from SCons.Script import *".
2343
2344   - Add a --debug=memoizer option to print Memoizer hit/mass statistics.
2345
2346   - Allow more than one --debug= option to be set at a time.
2347
2348   - Change --debug=count to report object counts before and after
2349     reading SConscript files and before and after building targets.
2350
2351   - Change --debug=memory output to line up the numbers and to better
2352     match (more or less) the headers on the --debug=count columns.
2353
2354   - Speed things up when there are lists of targets and/or sources by
2355     getting rid of some N^2 walks of the lists involved.
2356
2357   - Cache evaluation of LazyActions so we don't create a new object
2358     for each invocation.
2359
2360   - When scanning, don't create Nodes for include files that don't
2361     actually exist on disk.
2362
2363   - Make supported global variables CScanner, DScanner, ProgramScanner and
2364     SourceFileScanner.  Make SourceFileScanner.add_scanner() a supported
2365     part of the public interface.  Keep the old SCons.Defaults.*Scan names
2366     around for a while longer since some people were already using them.
2367
2368   - By default, don't scan directories for on-disk files.  Add a
2369     DirScanner global scanner that can be used in Builders or Command()
2370     calls that want source directory trees scanned for on-disk changes.
2371     Have the Tar() and Zip() Builders use the new DirScanner to preserve
2372     the behavior of rebuilding a .tar or .zip file if any file or
2373     directory under a source tree changes.  Add Command() support for
2374     a source_scanner keyword argument to Command() that can be set to
2375     DirScanner to get this behavior.
2376
2377   - Documentation changes:  Explain that $CXXFLAGS contains $CCFLAGS
2378     by default.  Fix a bad target_factory example in the man page.
2379     Add appendices to the User's Guide to cover the available Tools,
2380     Builders and construction variables.  Comment out the build of
2381     the old Python 10 paper, which doesn't build on all systems and
2382     is old enough at this point that it probably isn't worth the
2383     effort to make it do so.
2384
2385   From Wayne Lee:
2386
2387   - Avoid "maximum recursion limit" errors when removing $(-$) pairs
2388     from long command lines.
2389
2390   From Clive Levinson:
2391
2392   - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and
2393     $CCFLAGS, and -mwindows to $LINKFLAGS.
2394
2395   From Michael McCracken:
2396
2397   - Add a new "applelink" tool to handle the things like Frameworks and
2398     bundles that Apple has added to gcc for linking.
2399
2400   - Use more appropriate default search lists of linkers, compilers and
2401     and other tools for the 'darwin' platform.
2402
2403   - Add a LoadableModule Builder that builds a bundle on Mac OS X (Darwin)
2404     and a shared library on other systems.
2405
2406   - Improve SWIG tests for use on Mac OS X (Darwin).
2407
2408   From Elliot Murphy:
2409
2410   - Enhance the tests to guarantee persistence of ListOption
2411     values in saved options files.
2412
2413   - Supply the help text when -h is used with the -u, -U or -D options.
2414
2415   From Christian Neeb:
2416
2417   - Fix the Java parser's handling of string definitions to avoid ignoring
2418     subsequent code.
2419
2420   From Han-Wen Nienhuys:
2421
2422   - Optimize variable expansion by:  using the re.sub() method (when
2423     possible); not using "eval" for variables for which we can fetch the
2424     value directory; avoiding slowing substitution logic when there's no
2425     '$' in the string.
2426
2427   From Gary Oberbrunner:
2428
2429   - Add an Environment.Dump() method to print the contents of a
2430     construction environment.
2431
2432   - Allow $LIBS (and similar variables) to contain explicit File Nodes.
2433
2434   - Change ParseConfig to add the found library names directly to the
2435     $LIBS variable, instead of returning them.
2436
2437   - Add ParseConfig() support for the -framework GNU linker option.
2438
2439   - Add a PRINT_CMD_LINE_FUNC construction variable to allow people
2440     to filter (or log) command-line output.
2441
2442   - Print an internal Python stack trace in response to an otherwise
2443     unexplained error when --debug=stacktrace is specified.
2444
2445   - Add a --debug=findlibs option to print what's happening when
2446     the scanner is searching for libraries.
2447
2448   - Allow Tool specifications to be passed a dictionary of keyword
2449     arguments.
2450
2451   - Support an Options default value of None, in which case the variable
2452     will not be added to the construction environment unless it's set
2453     explicitly by the user or from an Options file.
2454
2455   - Avoid copying __builtin__ values into a construction environment's
2456     dictionary when evaluating construction variables.
2457
2458   - Add a new cross-platform intelc.py Tool that can detect and
2459     configure the Intel C++ v8 compiler on both Windows, where it's
2460     named icl, and Linux, where it's named icc.  It also checks that
2461     the directory specified in the Windows registry exists, and sets a
2462     new $INTEL_C_COMPILER_VERSION construction variable to identify the
2463     version being used.  (Niall Douglas contributed an early prototype
2464     of parts of this module.)
2465
2466   - Fix the private Conftest._Have() function so it doesn't change
2467     non-alphanumeric characters to underscores.
2468
2469   - Supply a better error message when a construction variable expansion
2470     has an unknown attribute.
2471
2472   - Documentation changes:  Update the man page to describe use of
2473     filenames or Nodes in $LIBS.
2474
2475   From Chris Pawling:
2476
2477   - Have the linkloc tool use $MSVS_VERSION to select the Microsoft
2478     Visual Studio version to use.
2479
2480   From Kevin Quick:
2481
2482   - Fix the Builder name returned from ListBuilders and other instances
2483     of subclasses of the BuilderBase class.
2484
2485   - Add Builders and construction variables to support rpcgen:
2486     RPCGenClient(), RPCGenHeader(), RPCGenService(), RPCGenXDR(),
2487     $RPCGEN, $RPCGENFLAGS, $RPCGENCLIENTFLAGS, $RPCGENHEADERFLAGS,
2488     $RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS.
2489
2490   - Update the man page to document that prefix and suffix Builder
2491     keyword arguments can be strings, callables or dictionaries.
2492
2493   - Provide more info in the error message when a user tries to build
2494     a target multiple ways.
2495
2496   - Fix Delete() when a file doesn't exist and must_exist=1.  (We were
2497     unintentionally dependent on a bug in versions of the Python shutil.py
2498     module prior to Python 2.3, which would generate an exception for
2499     a nonexistent file even when ignore_errors was set.)
2500
2501   - Only replace a Node's builder with a non-null source builder.
2502
2503   - Fix a stack trace when a suffix selection dictionary is passed
2504     an empty source file list.
2505
2506   - Allow optional names to be attached to Builders, for default
2507     Builders that don't get attached to construction environments.
2508
2509   - Fix problems with Parallel Task Exception handling.
2510
2511   - Build targets in an associated BuildDir even if there are targets
2512     or subdirectories locally in the source directory.
2513
2514   - If a FunctionAction has a callable class as its underlying Python
2515     function, use its strfunction() method (if any) to display the
2516     action.
2517
2518   - Fix handling when BuildDir() exists but is unwriteable.  Add
2519     "Stop." to those error messages for consistency.
2520
2521   - Catch incidents of bad builder creation (without an action) and
2522     supply meaningful error messages.
2523
2524   - Fix handling of src_suffix values that aren't extensions (don't
2525     begin with a '.').
2526
2527   - Don't retrieve files from a CacheDir, but report what would happen,
2528     when the -n option is used.
2529
2530   - Use the source_scanner from the target Node, not the source node
2531     itself.
2532
2533   - Internal Scanners fixes:  Make sure Scanners are only passed Nodes.
2534     Fix how a Scanner.Selector called its base class initialization.
2535     Make comparisons of Scanner objects more robust.  Add a name to
2536     an internal default ObjSourceScanner.
2537
2538   - Add a deprecated warning for use of the old "scanner" keyword argument
2539     to Builder creation.
2540
2541   - Improve the --debug=explain message when the build action changes.
2542
2543   - Test enhancements in SourceCode.py, option-n.py, midl.py.  Better
2544     Command() and Scanner test coverage.  Improved test infrastructure
2545     for -c output.
2546
2547   - Refactor the interface between Action and Executor objects to treat
2548     Actions atomically.
2549
2550   - The --debug=presub option will now report the pre-substitution
2551     each action seprately, instead of reporting the entire list before
2552     executing the actions one by one.
2553
2554   - The --debug=explain option explaining a changed action will now
2555     (more correctly) show pre-substitution action strings, instead of
2556     the commands with substituted file names.
2557
2558   - A Node (file) will now be rebuilt if its PreAction or PostAction
2559     actions change.
2560
2561   - Python Function actions now have their calling signature (target,
2562     source, env) reported correctly when displayed.
2563
2564   - Fix BuildDir()/build_dir handling when the build_dir is underneath
2565     the source directory and trying to use entries from the build_dir
2566     as sources for other targets in the build-dir.
2567
2568   - Fix hard-coding of JDK path names in various Java tests.
2569
2570   - Handle Python stack traces consistently (stop at the SConscript stack
2571     frame, by default) even if the Python source code isn't available.
2572
2573   - Improve the performance of the --debug={tree,dtree} options.
2574
2575   - Add --debug=objects logging of creation of OverrideWarner,
2576     EnvironmentCopy and EnvironmentOverride objects.
2577
2578   - Fix command-line expansion of Python Value Nodes.
2579
2580   - Internal cleanups:  Remove an unnecessary scan argument.  Associate
2581     Scanners only with Builders, not nodes.  Apply overrides once when
2582     a Builder is called, not in multiple places.  Cache results from the
2583     Node.FS.get_suffix() and Node.get_build_env() methods.  Use the Python
2584     md5 modules' hexdigest() method, if there is one.  Have Taskmaster
2585     call get_stat() once for each Node and re-use the value instead of
2586     calling it each time it needs the value.  Have Node.depends_on()
2587     re-use the list from the children() method instead of calling it
2588     multiple times.
2589
2590   - Use the correct scanner if the same source file is used for targets in
2591     two different environments with the same path but different scanners.
2592
2593   - Collect logic for caching values in memory in a Memoizer class,
2594     which cleans up a lot of special-case code in various methods and
2595     caches additional values to speed up most configurations.
2596
2597   - Add a PathAccept validator to the list of new canned PathOption
2598     validators.
2599
2600   From Jeff Squyres:
2601
2602   - Documentation changes:  Use $CPPDEFINES instead of $CCFLAGS in man
2603     page examples.
2604
2605   From Levi Stephen:
2606
2607   - Allow $JARCHDIR to be expanded to other construction variables.
2608
2609   From Christoph Wiedemann:
2610
2611   - Add an Environment.SetDefault() method that only sets values if
2612     they aren't already set.
2613
2614   - Have the qt.py Tool not override variables already set by the user.
2615
2616   - Add separate $QT_BINPATH, $QT_CPPPATH and $QT_LIBPATH variables
2617     so these can be set individually, instead of being hard-wired
2618     relative to $QTDIR.
2619
2620   - The %TEMP% and %TMP% external environment variables are now propagated
2621     automatically to the command execution environment on Windows systems.
2622
2623   - A new --config= command-line option allows explicit control of
2624     of when the Configure() tests are run:  --config=force forces all
2625     checks to be run, --config=cache uses all previously cached values,
2626     --config=auto (the default) runs tests only when dependency analysis
2627     determines it's necessary.
2628
2629   - The Configure() subsystem can now write a config.h file with values
2630     like HAVE_STDIO_H, HAVE_LIBM, etc.
2631
2632   - The Configure() subsystem now executes its checks silently when the
2633     -Q option is specified.
2634
2635   - The Configure() subsystem now reports if a test result is being
2636     taken from cache, and prints the standard output and error output
2637     of tests even when cached.
2638
2639   - Configure() test results are now reported as "yes" or "no" instead of
2640     "ok" or "failed."
2641
2642   - Fixed traceback printing when calling the env.Configure() method
2643     instead of the Configure() global function.
2644
2645   - The Configure() subsystem now caches build failures in a .sconsign
2646     file in the subdirectory, not a .cache file.  This may cause
2647     tests to be re-executed the first time after you install 0.97.
2648
2649   - Additional significant internal cleanups in the Configure() subsystem
2650     and its tests.
2651
2652   - Have the Qt Builder make uic-generated files dependent on the .ui.h
2653     file, if one exists.
2654
2655   - Add a test to make sure that SCons source code does not contain
2656     try:-except: blocks that catch all errors, which potentially catch
2657     and mask keyboard interrupts.
2658
2659   - Fix us of TargetSignatures('content') with the SConf subsystem.
2660
2661   From Russell Yanofsky:
2662
2663   - Add support for the Metrowerks Codewarrior compiler and linker
2664     (mwcc and mwld).
2665
2666
2667
2668 RELEASE 0.96.1 - Mon, 23 Aug 2004 12:55:50 +0000
2669
2670   From Craig Bachelor:
2671
2672   - Handle white space in the executable Python path name within in MSVS
2673     project files by quoting the path.
2674
2675   - Correct the format of a GUID string in a solution (.dsw) file so
2676     MSVS can correctly "build enable" a project.
2677
2678   From Steven Knight:
2679
2680   - Add a must_exist flag to Delete() to let the user control whether
2681     it's an error if the specified entry doesn't exist.  The default
2682     behavior is now to silently do nothing if it doesn't exist.
2683
2684   - Package up the new Platform/darwin.py, mistakenly left out of 0.96.
2685
2686   - Make the scons.bat REM statements into @REM so they aren't printed.
2687
2688   - Make the SCons packaging SConscript files platform independent.
2689
2690   From Anthony Roach:
2691
2692   - Fix scanning of pre-compiled header (.pch) files for #includes,
2693     broken in 0.96.
2694
2695
2696
2697 RELEASE 0.96 - Wed, 18 Aug 2004 13:36:40 +0000
2698
2699   From Chad Austin:
2700
2701   - Make the CacheDir() directory if it doesn't already exist.
2702
2703   - Allow construction variable substitutions in $LIBS specifications.
2704
2705   - Allow the emitter argument to a Builder() to be or expand to a list
2706     of emitter functions, which will be called in sequence.
2707
2708   - Suppress null values in construction variables like $LIBS that use
2709     the internal _concat() function.
2710
2711   - Remove .dll files from the construction variables searched for
2712     libraries that can be fed to Win32 compilers.
2713
2714   From Chad Austin and Christoph Wiedemann:
2715
2716   - Add support for a $RPATH variable to supply a list of directories
2717     to search for shared libraries when linking a program.  Used by
2718     the GNU and IRIX linkers (gnulink and sgilink).
2719
2720   From Charles Crain:
2721
2722   - Restore the ability to do construction variable substitutions in all
2723     kinds of *PATH variables, even when the substitution returns a Node
2724     or other object.
2725
2726   From Tom Epperly:
2727
2728   - Allow the Java() Builder to take more than one source directory.
2729
2730   From Ralf W. Grosse-Kunstleve:
2731
2732   - Have SConsignFile() use, by default, a custom "dblite.py" that we can
2733     control and guarantee to work on all Python versions (or nearly so).
2734
2735   From Jonathan Gurley:
2736
2737   - Add support for the newer "ifort" versions of the Intel Fortran
2738     Compiler for Linux.
2739
2740   From Bob Halley:
2741
2742   - Make the new *FLAGS variable type work with copied Environments.
2743
2744   From Chris Hoeppler:
2745
2746   - Initialize the name of a Scanner.Classic scanner correctly.
2747
2748   From James Juhasz:
2749
2750   - Add support for the .dylib shared library suffix and the -dynamiclib
2751     linker option on Mac OS X.
2752
2753   From Steven Knight:
2754
2755   - Add an Execute() method for executing actions directly.
2756
2757   - Support passing environment override keyword arguments to Command().
2758
2759   - Fix use of $MSVS_IGNORE_IDE_PATHS, which was broken when we added
2760     support for $MSVS_USE_MFC_DIRS last release.
2761
2762   - Make env.Append() and env.Prepend() act like the underlying Python
2763     behavior when the variable being appended to is a UserList object.
2764
2765   - Fix a regression that prevented the Command() global function in
2766     0.95 from working with command-line strings as actions.
2767
2768   - Fix checking out a file from a source code management system when
2769     the env.SourceCode() method was called with an individual file name
2770     or node, not a directory name or node.
2771
2772   - Enhance the Task.make_ready() method to create a list of the
2773     out-of-date Nodes for the task for use by the wrapping interface.
2774
2775   - Allow Scanners to pull the list of suffixes from the construction
2776     environment when the "skeys" keyword argument is a string containing
2777     a construction variable to be expanded.
2778
2779   - Support new $CPPSUFFIXES, $DSUFFIXES $FORTRANSUFFIXES, and
2780     $IDLSUFFIXES.  construction variables that contain the default list
2781     of suffixes to be scanned by a given type of scanner, allowing these
2782     suffix lists to be easily added to or overridden.
2783
2784   - Speed up Node creation when calling a Builder by comparing whether two
2785     Environments are the same object, not if their underlying dictionaries
2786     are equivalent.
2787
2788   - Add a --debug=explain option that reports the reason(s) why SCons
2789     thinks it must rebuild something.
2790
2791   - Add support for functions that return platform-independent Actions
2792     to Chmod(), Copy(), Delete(), Mkdir(), Move() and Touch() files
2793     and/or directories.  Like any other Actions, the returned Action
2794     object may be executed directly using the Execute() global function
2795     or env.Execute() environment method, or may be used as a Builder
2796     action or in an env.Command() action list.
2797
2798   - Add support for the strfunction argument to all types of Actions:
2799     CommandAction, ListAction, and CommandGeneratorAction.
2800
2801   - Speed up turning file system Nodes into strings by caching the
2802     values after we're finished reading the SConscript files.
2803
2804   - Have ParseConfig() recognize and supporting adding the -Wa, -Wl,
2805     and -Wp, flags to ASFLAGS, LINKFLAGS and CPPFLAGS, respectively.
2806
2807   - Change the .sconsign format and the checks for whether a Node is
2808     up-to-date to make dependency checks more efficient and correct.
2809
2810   - Add wrapper Actions to SCons.Defaults for $ASCOM, $ASPPCOM, $LINKCOM,
2811     $SHLINKCOM, $ARCOM, $LEXCOM and $YACCCOM.  This makes it possible
2812     to replace the default print behavior with a custom strfunction()
2813     for each of these.
2814
2815   - When a Node has been built, don't walk the whole tree back to delete
2816     the parents's implicit dependencies, let returning up the normal
2817     Taskmaster descent take care of it for us.
2818
2819   - Add documented support for separate target_scanner and source_scanner
2820     arguments to Builder creation, which allows different scanners to
2821     be applied to source files
2822
2823   - Don't re-install or (re-generate) .h files when a subsidiary #included
2824     .h file changes.  This eliminates incorrect circular dependencies
2825     with .h files generated from other source files.
2826
2827   - Slim down the internal Sig.Calculator class by eliminating methods
2828     whose functionality is now covered by Node methods.
2829
2830   - Document use of the target_factory and source_factory keyword
2831     arguments when creating Builder objects.  Enhance Dir Nodes so that
2832     they can be created with user-specified Builder objects.
2833
2834   - Don't blow up with stack trace when the external $PATH environment
2835     variable isn't set.
2836
2837   - Make Builder calls return lists all the time, even if there's only
2838     one target.  This keeps things consistent and easier to program to
2839     across platforms.
2840
2841   - Add a Flatten() function to make it easier to deal with the Builders
2842     all returning lists of targets, not individual targets.
2843
2844   - Performance optimizations in Node.FS.__doLookup().
2845
2846   - Man page fixes:  formatting typos, misspellings, bad example.
2847
2848   - User's Guide fixes: Fix the signatures of the various example
2849     *Options() calls.  Triple-quote properly a multi-line Split example.
2850
2851   - User's Guide additions:  Chapter describing File and Directory
2852     Nodes.  Section describing declarative nature of SCons functions in
2853     SConscript files.  Better organization and clarification of points
2854     raised by Robert P. J. Day.  Chapter describing SConf (Autoconf-like)
2855     functionality.  Chapter describing how to install Python and
2856     SCons.  Chapter describing Java builds.
2857
2858   From Chris Murray:
2859
2860   - Add a .win32 attribute to force file names to expand with
2861     Windows backslash path separators.
2862
2863   - Fix escaping file names on command lines when the expansion is
2864     concatenated with another string.
2865
2866   - Add support for Fortran 90 and Fortran 95.  This adds $FORTRAN*
2867     variables that specify a default compiler, command-line, flags,
2868     etc. for all Fortran versions, plus separate $F90* and $F95*
2869     variables for when different compilers/flags/etc. must be specified
2870     for different Fortran versions.
2871
2872   - Have individual tools that create libraries override the default
2873     $LIBPREFIX and $LIBSUFFIX values set by the platform.  This makes
2874     it easier to use Microsoft Visual Studio tools on a CygWin platform.
2875
2876   From Gary Oberbrunner:
2877
2878   - Add a --debug=presub option to print actions prior to substitution.
2879
2880   - Add a warning upon use of the override keywords "targets" and
2881     "sources" when calling Builders.  These are usually mistakes which
2882     are otherwise silently (and confusingly) turned into construction
2883     variable overrides.
2884
2885   - Try to find the ICL license file path name in the external environment
2886     and the registry before resorting to the hard-coded path name.
2887
2888   - Add support for fetching command-line keyword=value arguments in
2889     order from an ARGLIST list.
2890
2891   - Avoid stack traces when trying to read dangling symlinks.
2892
2893   - Treat file "extensions" that only contain digits as part of the
2894     file basename.  This supports version numbers as part of shared
2895     library names, for example.
2896
2897   - Avoid problems when there are null entries (None or '') in tool
2898     lists or CPPPATH.
2899
2900   - Add an example and explanation of how to use "tools = ['default', ..."
2901     when creating a construction environment.
2902
2903   - Add a section describing File and Directory Nodes and some of their
2904     attributes and methods.
2905
2906   - Have ParseConfig() add a returned -pthread flag to both $CCFLAGS
2907     and $LINKFLAGS.
2908
2909   - Fix some test portability issues on Mac OS X (darwin).
2910
2911   From Simon Perkins:
2912
2913   - Fix a bug introduced in building shared libraries under MinGW.
2914
2915   From Kevin Quick:
2916
2917   - Handling SCons exceptions according to Pythonic standards.
2918
2919   - Fix test/chained-build.py on systems that execute within one second.
2920
2921   - Fix tests on systems where 'ar' warns about archive creation.
2922
2923   From Anthony Roach:
2924
2925   - Fix use of the --implicit-cache option with timestamp signatures.
2926
2927   - If Visual Studio is installed, assume the C/C++ compiler, the linker
2928     and the MIDL compiler that comes with it are available, too.
2929
2930   - Better error messages when evaluating a construction variable
2931     expansion yields a Python syntax error.
2932
2933   - Change the generation of PDB files when using Visual Studio from
2934     compile time to link time.
2935
2936   From sam th:
2937
2938   - Allow SConf.CheckLib() to search a list of libraries, like the
2939     Autoconf AC_SEARCH_LIBS macro.
2940
2941   - Allow the env.WhereIs() method to take a "reject" argument to
2942     let it weed out specific path names.
2943
2944   From Christoph Wiedemann:
2945
2946   - Add new Moc() and Uic() Builders for more explicit control over
2947     Qt builds, plus new construction variables to control them:
2948     $QT_AUTOSCAN, $QT_DEBUG, $QT_MOCCXXPREFIX, $QT_MOCCXXSUFFIX,
2949     $QT_MOCHPREFIX, $QT_MOCHSUFFIX, $QT_UICDECLPREFIX, $QT_UICDECLSUFFIX,
2950     $QT_UICIMPLPREFIX, $QT_UICIMPLSUFFIX and $QT_UISUFFIX.
2951
2952   - Add a new single_source keyword argument for Builders that enforces
2953     a single source file on calls to the Builder.
2954
2955
2956
2957 RELEASE 0.95 - Mon, 08 Mar 2004 06:43:20 -0600
2958
2959   From Chad Austin:
2960
2961   - Replace print statements with calls to sys.stdout.write() so output
2962     lines stay together when -j is used.
2963
2964   - Add portability fixes for a number of tests.
2965
2966   - Accomodate the fact that Cygwin's os.path.normcase() lies about
2967     the underlying system being case-sensitive.
2968
2969   - Fix an incorrect _concat() call in the $RCINCFLAGS definition for
2970     the mingw Tool.
2971
2972   - Fix a problem with the msvc tool with Python versions prior to 2.3.
2973
2974   - Add support for a "toolpath" Tool() and Environment keyword that
2975     allows Tool modules to be found in specified local directories.
2976
2977   - Work around Cygwin Python's silly fiction that it's using a
2978     case-sensitive file system.
2979
2980   - More robust handling of data in VCComponents.dat.
2981
2982   - If the "env" command is available, spawn commands with the more
2983     general "env -" instead of "env -i".
2984
2985   From Kerim Borchaev:
2986
2987   - Fix a typo in a msvc.py's registry lookup:  "VCComponents.dat", not
2988     "VSComponents.dat".
2989
2990   From Chris Burghart:
2991
2992   - Fix the ability to save/restore a PackageOption to a file.
2993
2994   From Steve Christensen:
2995
2996   - Update the MSVS .NET and MSVC 6.0/7.0 path detection.
2997
2998   From David M. Cooke:
2999
3000   - Make the Fortran scanner case-insensitive for the INCLUDE string.
3001
3002   From Charles Crain:
3003
3004   - If no version of MSVC is detected but the tool is specified,
3005     use the MSVC 6.0 paths by default.
3006
3007   - Ignore any "6.1" version of MSVC found in the registry; this is a
3008     phony version number (created by later service packs?) and would
3009     throw off the logic if the user had any non-default paths configure.
3010
3011   - Correctly detect if the user has independently configured the MSVC
3012     "include," "lib" or "path" in the registry and use the appropriate
3013     values.  Previously, SCons would only use the values if all three
3014     were set in the registry.
3015
3016   - Make sure side-effect nodes are prepare()d before building their
3017     corresponding target.
3018
3019   - Preserve the ability to call BuildDir() multiple times with the
3020     same target and source directory arguments.
3021
3022   From Andy Friesen:
3023
3024   - Add support for the Digital Mars "D" programming language.
3025
3026   From Scott Lystig Fritchie:
3027
3028   - Fix the ability to use a custom _concat() function in the
3029     construction environment when calling _stripixes().
3030
3031   - Make the message about ignoring a missing SConscript file into a
3032     suppressable Warning, not a hard-coded sys.stderr.write().
3033
3034   - If a builder can be called multiple times for a target (because
3035     the sources and overrides are identical, or it's a builder with the
3036     "multi" flag set), allow the builder to be called through multiple
3037     environments so long as the builders have the same signature for
3038     the environments in questions (that is, they're the same action).
3039
3040   From Bob Halley:
3041
3042   - When multiple targets are built by a single action, retrieve all
3043     of them from cache, not just the first target, and exec the build
3044     command if any of the targets isn't present in the cache.
3045
3046   From Zephaniah Hull:
3047
3048   - Fix command-line ARGUMENTS with multiple = in them.
3049
3050   From Steven Knight:
3051
3052   - Fix EnsureSConsVersion() so it checks against the SCons version,
3053     not the Python version, on Pythons with sys.version_info.
3054
3055   - Don't swallow the AttributeError when someone uses an expansion like
3056     $TARGET.bak, so we can supply a more informative error message.
3057
3058   - Fix an odd double-quote escape sequence in the man page.
3059
3060   - Fix looking up a naked drive letter as a directory (Dir('C:')).
3061
3062   - Support using File nodes in the LIBS construction variable.
3063
3064   - Allow the LIBS construction variable to be a single string or File
3065     node, not a list, when only one library is needed.
3066
3067   - Fix typos in the man page:  JAVACHDIR => JARCHDIR; add "for_signature"
3068     to the __call__() example in the "Variable Substitution" section.
3069
3070   - Correct error message spellings of "non-existant" to "non-existent."
3071
3072   - When scanning for libraries to link with, don't append $LIBPREFIXES
3073     or $LIBSUFFIXES values to the $LIBS values if they're already present.
3074
3075   - Add a ZIPCOMPRESSION construction variable to control whether the
3076     internal Python action for the Zip Builder compresses the file or
3077     not.  The default value is zipfile.ZIP_DEFLATED, which generates
3078     a compressed file.
3079
3080   - Refactor construction variable expansion to support recursive
3081     expansion of variables (e.g. CCFLAGS = "$CCFLAGS -g") without going
3082     into an infinite loop.  Support this in all construction variable
3083     overrides, as well as when copying Environments.
3084
3085   - Fix calling Configure() from more than one subsidiary SConscript file.
3086
3087   - Fix the env.Action() method so it returns the correct type of
3088     Action for its argument(s).
3089
3090   - Fix specifying .class files as input to JavaH with the .class suffix
3091     when they weren't generated using the Java Builder.
3092
3093   - Make the check for whether all of the objects going into a
3094     SharedLibrary() are shared work even if the object was built in a
3095     previous run.
3096
3097   - Supply meaningful error messages, not stack traces, if we try to add
3098     a non-Node as a source, dependency, or ignored dependency of a Node.
3099
3100   - Generate MSVS Project files that re-invoke SCons properly regardless
3101     of whether the file was built via scons.bat or scons.py.
3102     (Thanks to Niall Douglas for contributing code and testing.)
3103
3104   - Fix TestCmd.py, runtest.py and specific tests to accomodate being
3105     run from directories whose paths include white space.
3106
3107   - Provide a more useful error message if a construction variable
3108     expansion contains a syntax error during evaluation.
3109
3110   - Fix transparent checkout of implicit dependency files from SCCS
3111     and RCS.
3112
3113   - Added new --debug=count, --debug=memory and --debug=objects options.
3114     --debug=count and --debug=objects only print anything when run
3115     under Python 2.1 or later.
3116
3117   - Deprecate the "overrides" keyword argument to Builder() creation
3118     in favor of using keyword argument values directly (like we do
3119     for builder execution and the like).
3120
3121   - Always use the Builder overrides in substitutions, not just if
3122     there isn't a target-specific environment.
3123
3124   - Add new "rsrcpath" and "rsrcdir" and attributes to $TARGET/$SOURCE,
3125     so Builder command lines can find things in Repository source
3126     directories when using BuildDir.
3127
3128   - Fix the M4 Builder so that it chdirs to the Repository directory
3129     when the input file is in the source directory of a BuildDir.
3130
3131   - Save memory at build time by allowing Nodes to delete their build
3132     environments after they've been built.
3133
3134   - Add AppendUnique() and PrependUnique() Environment methods, which
3135     add values to construction variables like Append() and Prepend()
3136     do, but suppress any duplicate elements in the list.
3137
3138   - Allow the 'qt' tool to still be used successfully from a copied
3139     Environment.  The include and library directories previously ended up
3140     having the same string re-appended to the end, yielding an incorrect
3141     path name.
3142
3143   - Supply a more descriptive error message when the source for a target
3144     can't be found.
3145
3146   - Initialize all *FLAGS variables with objects do the right thing with
3147     appending flags as strings or lists.
3148
3149   - Make things like ${TARGET.dir} work in *PATH construction variables.
3150
3151   - Allow a $MSVS_USE_MFC_DIRS construction variable to control whether
3152     ATL and MFC directories are included in the default INCLUDE and
3153     LIB paths.
3154
3155   - Document the dbm_module argument to the SConsignFile() function.
3156
3157   From Vincent Risi:
3158
3159   - Add support for the bcc32, ilink32 and tlib Borland tools.
3160
3161   From Anthony Roach:
3162
3163   - Supply an error message if the user tries to configure a BuildDir
3164     for a directory that already has one.
3165
3166   - Remove documentation of the still-unimplemented -e option.
3167
3168   - Add -H help text listing the legal --debug values.
3169
3170   - Don't choke if a construction variable is a non-string value.
3171
3172   - Build Type Libraries in the target directory, not the source
3173     directory.
3174
3175   - Add an appendix to the User's Guide showing how to accomplish
3176     various common tasks in Python.
3177
3178   From Greg Spencer:
3179
3180   - Add support for Microsoft Visual Studio 2003 (version 7.1).
3181
3182   - Evaluate $MSVSPROJECTSUFFIX and $MSVSSOLUTIONSUFFIX when the Builder
3183     is invoked, not when the tool is initialized.
3184
3185   From Christoph Wiedemann:
3186
3187   - When compiling Qt, make sure the moc_*.cc files are compiled using
3188     the flags from the environment used to specify the target, not
3189     the environment that first has the Qt Builders attached.
3190
3191
3192
3193 RELEASE 0.94 - Fri, 07 Nov 2003 05:29:48 -0600
3194
3195   From Hartmut Goebel:
3196
3197   - Add several new types of canned functions to help create options:
3198     BoolOption(), EnumOption(), ListOption(), PackageOption(),
3199     PathOption().
3200
3201   From Steven Knight:
3202
3203   - Fix use of CPPDEFINES with C++ source files.
3204
3205   - Fix env.Append() when the operand is an object with a __cmp__()
3206     method (like a Scanner instance).
3207
3208   - Fix subclassing the Environment and Scanner classes.
3209
3210   - Add BUILD_TARGETS, COMMAND_LINE_TARGETS and DEFAULT_TARGETS variables.
3211
3212   From Steve Leblanc:
3213
3214   - SGI fixes:  Fix C++ compilation, add a separate Tool/sgic++.py module.
3215
3216   From Gary Oberbrunner:
3217
3218   - Fix how the man page un-indents after examples in some browsers.
3219
3220   From Vincent Risi:
3221
3222   - Fix the C and C++ tool specifications for AIX.
3223
3224
3225
3226 RELEASE 0.93 - Thu, 23 Oct 2003 07:26:55 -0500
3227
3228   From J.T. Conklin:
3229
3230   - On POSIX, execute commands with the more modern os.spawnvpe()
3231     function, if it's available.
3232
3233   - Scan .S, .spp and .SPP files for C preprocessor dependencies.
3234
3235   - Refactor the Job.Parallel() class to use a thread pool without a
3236     condition variable.  This improves parallel build performance and
3237     handles keyboard interrupts properly when -j is used.
3238
3239   From Charles Crain:
3240
3241   - Add support for a JARCHDIR variable to control changing to a
3242     directory using the jar -C option.
3243
3244   - Add support for detecting Java manifest files when using jar,
3245     and specifying them using the jar m flag.
3246
3247   - Fix some Python 2.2 specific things in various tool modules.
3248
3249   - Support directories as build sources, so that a rebuild of a target
3250     can be triggered if anything underneath the directory changes.
3251
3252   - Have the scons.bat and scons.py files look for the SCons modules
3253     in site-packages as well.
3254
3255   From Christian Engel:
3256
3257   - Support more flexible inclusion of separate C and C++ compilers.
3258
3259   - Use package management tools on AIX and Solaris to find where
3260     the comilers are installed, and what version they are.
3261
3262   - Add support for CCVERSION and CXXVERSION variables for a number
3263     of C and C++ compilers.
3264
3265   From Sergey Fogel:
3266
3267   - Add test cases for the new capabilities to run bibtex and to rerun
3268     latex as needed.
3269
3270   From Ralf W. Grosse-Kunstleve:
3271
3272   - Accomodate anydbm modules that don't have a sync() method.
3273
3274   - Allow SConsignFile() to take an argument specifying the DBM
3275     module to be used.
3276
3277   From Stephen Kennedy:
3278
3279   - Add support for a configurable global .sconsign.dbm file which
3280     can be used to avoid cluttering each directory with an individual
3281     .sconsign file.
3282
3283   From John Johnson:
3284
3285   - Fix (re-)scanning of dependencies in generated or installed
3286     header files.
3287
3288   From Steven Knight:
3289
3290   - The -Q option suppressed too many messages; fix it so that it only
3291     suppresses the Reading/Building messages.
3292
3293   - Support #include when there's no space before the opening quote
3294     or angle bracket.
3295
3296   - Accomodate alphanumeric version strings in EnsurePythonVersion().
3297
3298   - Support arbitrary expansion of construction variables within
3299     file and directory arguments to Builder calls and Environment methods.
3300
3301   - Add Environment-method versions of the following global functions:
3302     Action(), AddPostAction(), AddPreAction(), Alias(), Builder(),
3303     BuildDir(), CacheDir(), Clean(), Configure(), Default(),
3304     EnsurePythonVersion(), EnsureSConsVersion(), Environment(),
3305     Exit(), Export(), FindFile(), GetBuildPath(), GetOption(), Help(),
3306     Import(), Literal(), Local(), Platform(), Repository(), Scanner(),
3307     SConscriptChdir(), SConsignFile(), SetOption(), SourceSignatures(),
3308     Split(), TargetSignatures(), Tool(), Value().
3309
3310   - Add the following global functions that correspond to the same-named
3311     Environment methods:  AlwaysBuild(), Command(), Depends(), Ignore(),
3312     Install(), InstallAs(), Precious(), SideEffect() and SourceCode().
3313
3314   - Add the following global functions that correspond to the default
3315     Builder methods supported by SCons: CFile(), CXXFile(), DVI(), Jar(),
3316     Java(), JavaH(), Library(), M4(), MSVSProject(), Object(), PCH(),
3317     PDF(), PostScript(), Program(), RES(), RMIC(), SharedLibrary(),
3318     SharedObject(), StaticLibrary(), StaticObject(), Tar(), TypeLibrary()
3319     and Zip().
3320
3321   - Rearrange the man page to show construction environment methods and
3322     global functions in the same list, and to explain the difference.
3323
3324   - Alphabetize the explanations of the builder methods in the man page.
3325
3326   - Rename the Environment.Environment class to Enviroment.Base.
3327     Allow the wrapping interface to extend an Environment by using its own
3328     subclass of Environment.Base and setting a new Environment.Environment
3329     variable as the calling entry point.
3330
3331   - Deprecate the ParseConfig() global function in favor of a same-named
3332     construction environment method.
3333
3334   - Allow the Environment.WhereIs() method to take explicit path and
3335     pathext arguments (like the underlying SCons.Util.WhereIs() function).
3336
3337   - Remove the long-obsolete {Get,Set}CommandHandler() functions.
3338
3339   - Enhance env.Append() to suppress null values when appropriate.
3340
3341   - Fix ParseConfig() so it works regardless of initial construction
3342     variable values.
3343
3344     Extend CheckHeader(), CheckCHeader(), CheckCXXHeader() and
3345     CheckLibWithHeader() to accept a list of header files that will be
3346     #included in the test.  The last one in the list is assumed to be
3347     the one being checked for.  (Prototype code contributed by Gerard
3348     Patel and Niall Douglas).
3349
3350   - Supply a warning when -j is used and threading isn't built in to
3351     the current version of Python.
3352
3353   - First release of the User's Guide (finally, and despite a lot
3354     of things still missing from it...).
3355
3356   From Clark McGrew:
3357
3358   - Generalize the action for .tex files so that it will decide whether
3359     a file is TeX or LaTeX, check the .aux output to decide if it should
3360     run bibtex, and check the .log output to re-run LaTeX if needed.
3361
3362   From Bram Moolenaar:
3363
3364   - Split the non-SCons-specific functionality from SConf.py to a new,
3365     re-usable Conftest.py module.
3366
3367   From Gary Oberbrunner:
3368
3369   - Allow a directory to be the target or source or dependency of a
3370     Depends(), Ignore(), Precious() or SideEffect() call.
3371
3372   From Gerard Patel:
3373
3374   - Use the %{_mandir} macro when building our RPM package.
3375
3376   From Marko Rauhamaa:
3377
3378   - Have the closing message say "...terminated because of errors" if
3379     there were any.
3380
3381   From Anthony Roach:
3382
3383   - On Win32 systems, only use "rm" to delete files if Cygwin is being
3384     used.   ("rm" doesn't understand Win32-format path names.)
3385
3386   From Christoph Wiedemann:
3387
3388   - Fix test/SWIG.py to find the Python include directory in all cases.
3389
3390   - Fix a bug in detection of Qt installed on the local system.
3391
3392   - Support returning Python 2.3 BooleanType values from Configure checks.
3393
3394   - Provide an error message if someone mistakenly tries to call a
3395     Configure check from within a Builder function.
3396
3397   - Support calling a Builder when a Configure context is still open.
3398
3399   - Handle interrupts better by eliminating all try:-except: blocks
3400     which caught any and all exceptions, including KeyboardInterrupt.
3401
3402   - Add a --duplicate= option to control how files are duplicated.
3403
3404
3405
3406 RELEASE 0.92 - Wed, 20 Aug 2003 03:45:28 -0500
3407
3408   From Charles Crain and Gary Oberbrunner:
3409
3410   - Fix Tool import problems with the Intel and PharLap linkers.
3411
3412   From Steven Knight
3413
3414   - Refactor the DictCmdGenerator class to be a Selector subclass.
3415
3416   - Allow the DefaultEnvironment() function to take arguments and pass
3417     them to instantiation of the default construction environment.
3418
3419   - Update the Debian package so it uses Python 2.2 and more closely
3420     resembles the currently official Debian packaging info.
3421
3422   From Gerard Patel
3423
3424   - When the yacc -d flag is used, take the .h file base name from the
3425     target .c file, not the source (matching what yacc does).
3426
3427
3428
3429 RELEASE 0.91 - Thu, 14 Aug 2003 13:00:44 -0500
3430
3431   From Chad Austin:
3432
3433   - Support specifying a list of tools when calling Environment.Copy().
3434
3435   - Give a Value Nodes a timestamp of the system time when they're
3436     created, so they'll work when using timestamp-based signatures.
3437
3438   - Add a DefaultEnvironment() function that only creates a default
3439     environment on-demand (for fetching source files, e.g.).
3440
3441   - Portability fix for test/M4.py.
3442
3443   From Steven Knight:
3444
3445   - Tighten up the scons -H help output.
3446
3447   - When the input yacc file ends in .yy and the -d flag is specified,
3448     recognize that a .hpp file (not a .h file) will be created.
3449
3450   - Make builder prefixes work correctly when deducing a target
3451     from a source file name in another directory.
3452
3453   - Documentation fixes: typo in the man page; explain up-front about
3454     not propagating the external environment.
3455
3456   - Use "cvs co -d" instead of "cvs co -p >" when checking out something
3457     from CVS with a specified module name.  This avoids zero-length
3458     files when there is a checkout error.
3459
3460   - Add an "sconsign" script to print the contents of .sconsign files.
3461
3462   - Speed up maintaining the various lists of Node children by using
3463     dictionaries to avoid "x in list" searches.
3464
3465   - Cache the computed list of Node children minus those being Ignored
3466     so it's only calculated once.
3467
3468   - Fix use of the --cache-show option when building a Program()
3469     (or using any other arbitrary action) by making sure all Action
3470     instances have strfunction() methods.
3471
3472   - Allow the source of Command() to be a directory.
3473
3474   - Better error handling of things like raw TypeErrors in SConscripts.
3475
3476   - When installing using "setup.py install --prefix=", suppress the
3477     distutils warning message about adding the (incorrect) library
3478     directory to your search path.
3479
3480   - Correct the spelling of the "validater" option to "validator."
3481     Add a DeprecatedWarning when the old spelling is used.
3482
3483   - Allow a Builder's emitter to be a dictionary that maps source file
3484     suffixes to emitter functions, using the suffix of the first file
3485     in the source list to pick the right one.
3486
3487   - Refactor the creation of the Program, *Object and *Library Builders
3488     so that they're moved out of SCons.Defaults and created on demand.
3489
3490   - Don't split SConscript file names on white space.
3491
3492   - Document the SConscript function's "dirs" and "name" keywords.
3493
3494   - Remove the internal (and superfluous) SCons.Util.argmunge() function.
3495
3496   - Add /TP to the default CXXFLAGS for msvc, so it can compile all
3497     of the suffixes we use as C++ files.
3498
3499   - Allow the "prefix" and "suffix" attributes of a Builder to be
3500     callable objects that return generated strings, or dictionaries
3501     that map a source file suffix to the right prefix/suffix.
3502
3503   - Support a MAXLINELINELENGTH construction variable on Win32 systems
3504     to control when a temporary file is used for long command lines.
3505
3506   - Make how we build .rpm packages not depend on the installation
3507     locations from the distutils being used.
3508
3509   - When deducing a target Node, create it directly from the first
3510     source Node, not by trying to create the right string to pass to
3511     arg2nodes().
3512
3513   - Add support for SWIG.
3514
3515   From Bram Moolenaar:
3516
3517   - Test portability fixes for FreeBSD.
3518
3519   From Gary Oberbrunner:
3520
3521   - Report the target being built in error messages when building
3522     multiple sources from different extensions, or when the target file
3523     extension can't be deduced, or when we don't have an action for a
3524     file suffix.
3525
3526   - Provide helpful error messages when the arguments to env.Install()
3527     are incorrect.
3528
3529   - Fix the value returned by the Node.prevsiginfo() method to conform
3530     to a previous change when checking whether a node is current.
3531
3532   - Supply a stack trace if the Taskmaster catches an exception.
3533
3534   - When using a temporary file for a long link line on Win32 systems,
3535     (also) print the command line that is being executed through the
3536     temporary file.
3537
3538   - Initialize the LIB environment variable when using the Intel
3539     compiler (icl).
3540
3541   - Documentation fixes:  better explain the AlwaysBuild() function.
3542
3543   From Laurent Pelecq:
3544
3545   - When the -debug=pdb option is specified, use pdb.Pdb().runcall() to
3546     call pdb directly, don't call Python recursively.
3547
3548   From Ben Scott:
3549
3550   - Add support for a platform-independent CPPDEFINES variable.
3551
3552   From Christoph Wiedemann:
3553
3554   - Have the g++ Tool actually use g++ in preference to c++.
3555
3556   - Have the gcc Tool actually use gcc in preference to cc.
3557
3558   - Add a gnutools.py test of the GNU tool chain.
3559
3560   - Be smarter about linking: use $CC by default and $CXX only if we're
3561     linking with any C++ objects.
3562
3563   - Avoid SCons hanging when a piped command has a lot of output to read.
3564
3565   - Add QT support for preprocessing .ui files into .c files.
3566
3567
3568
3569 RELEASE 0.90 - Wed, 25 Jun 2003 14:24:52 -0500
3570
3571   From Chad Austin:
3572
3573   - Fix the _concat() documentation, and add a test for it.
3574
3575   - Portability fixes for non-GNU versions of lex and yacc.
3576
3577   From Matt Balvin:
3578
3579   - Fix handling of library prefixes when the subdirectory matches
3580     the prefix.
3581
3582   From Timothee Bessett:
3583
3584   - Add an M4 Builder.
3585
3586   From Charles Crain:
3587
3588   - Use '.lnk' as the suffix on the temporary file for linking long
3589     command lines (necessary for the Phar Lap linkloc linker).
3590
3591   - Save non-string Options values as their actual type.
3592
3593   - Save Options string values that contain a single quote correctly.
3594
3595   - Save any Options values that are changed from the default
3596     Environment values, not just ones changed on the command line or in
3597     an Options file.
3598
3599   - Make closing the Options file descriptor exception-safe.
3600
3601   From Steven Knight:
3602
3603   - SCons now enforces (with an error) that construction variables
3604     must have the same form as valid Python identifiers.
3605
3606   - Fix man page bugs: remove duplicate AddPostAction() description;
3607     document no_import_lib; mention that CPPFLAGS does not contain
3608     $_CPPINCFLAGS; mention that F77FLAGS does not contain $_F77INCFLAGS;
3609     mention that LINKFLAGS and SHLINKFLAGS contains neither $_LIBFLAGS
3610     nor $_LIBDIRFLAGS.
3611
3612   - Eliminate a dependency on the distutils.fancy_getopt module by
3613     copying and pasting its wrap_text() function directly.
3614
3615   - Make the Script.Options() subclass match the underlying base class
3616     implementation.
3617
3618   - When reporting a target is up to date, quote the target like make
3619     (backquote-quote) instead of with double quotes.
3620
3621   - Fix handling of ../* targets when using -U, -D or -u.
3622
3623   From Steve Leblanc:
3624
3625   - Don't update the .sconsign files when run with -n.
3626
3627   From Gary Oberbrunner:
3628
3629   - Add support for the Intel C Compiler (icl.exe).
3630
3631   From Anthony Roach
3632
3633   - Fix Import('*').
3634
3635   From David Snopek
3636
3637   - Fix use of SConf in paths with white space in them.
3638
3639   - Add CheckFunc and CheckType functionality to SConf.
3640
3641   - Fix use of SConf with Builders that return a list of nodes.
3642
3643   From David Snopek and Christoph Wiedemann
3644
3645   - Fix use of the SConf subsystem with SConscriptChdir().
3646
3647   From Greg Spencer
3648
3649   - Check for the existence of MS Visual Studio on disk before using it,
3650     to avoid getting fooled by leftover junk in the registry.
3651
3652   - Add support for MSVC++ .NET.
3653
3654   - Add support for MS Visual Studio project files (DSP, DSW,
3655     SLN and VCPROJ files).
3656
3657   From Christoph Wiedemann
3658
3659   - SConf now works correctly when the -n and -q options are used.
3660
3661
3662
3663 RELEASE 0.14 - Wed, 21 May 2003 05:16:32 -0500
3664
3665   From Chad Austin:
3666
3667   - Use .dll (not .so) for shared libraries on Cygwin; use -fPIC
3668     when compiling them.
3669
3670   - Use 'rm' to remove files under Cygwin.
3671
3672   - Add a PLATFORM variable to construction environments.
3673
3674   - Remove the "platform" argument from tool specifications.
3675
3676   - Propogate PYTHONPATH when running the regression tests so distutils
3677     can be found in non-standard locations.
3678
3679   - Using MSVC long command-line linking when running Cygwin.
3680
3681   - Portability fixes for a lot of tests.
3682
3683   - Add a Value Node class for dependencies on in-core Python values.
3684
3685   From Allen Bierbaum:
3686
3687   - Pass an Environment to the Options validator method, and
3688     add an Options.Save() method.
3689
3690   From Steve Christensen:
3691
3692   - Add an optional sort function argument to the GenerateHelpText()
3693     Options function.
3694
3695   - Evaluate the "varlist" variables when computing the signature of a
3696     function action.
3697
3698   From Charles Crain:
3699
3700   - Parse the source .java files for class names (including inner class
3701     names) to figure out the target .class files that will be created.
3702
3703   - Make Java support work with Repositories and SConscriptChdir(0).
3704
3705   - Pass Nodes, not strings, to Builder emitter functions.
3706
3707   - Refactor command-line interpolation and signature calculation
3708     so we can use real Node attributes.
3709
3710   From Steven Knight:
3711
3712   - Add Java support (javac, javah, jar and rmic).
3713
3714   - Propagate the external SYSTEMROOT environment variable into ENV on
3715     Win32 systems, so external commands that use sockets will work.
3716
3717   - Add a .posix attribute to PathList expansions.
3718
3719   - Check out CVS source files using POSIX path names (forward slashes
3720     as separators) even on Win32.
3721
3722   - Add Node.clear() and Node.FS.Entry.clear() methods to wipe out a
3723     Node's state, allowing it to be re-evaluated by continuous
3724     integration build interfaces.
3725
3726   - Change the name of the Set{Build,Content}SignatureType() functions
3727     to {Target,Source}Signatures().  Deprecate the old names but support
3728     them for backwards compatibility.
3729
3730   - Add internal SCons.Node.FS.{Dir,File}.Entry() methods.
3731
3732   - Interpolate the null string if an out-of-range subscript is used
3733     for a construction variable.
3734
3735   - Fix the internal Link function so that it properly links or copies
3736     files in subsidiary BuildDir directories.
3737
3738   - Refactor the internal representation of a single execution instance
3739     of an action to eliminate redundant signature calculations.
3740
3741   - Eliminate redundant signature calculations for Nodes.
3742
3743   - Optimize out calling hasattr() before accessing attributes.
3744
3745   - Say "Cleaning targets" (not "Building...") when the -c option is
3746     used.
3747
3748   From Damyan Pepper:
3749
3750   - Quote the "Entering directory" message like Make.
3751
3752   From Stefan Reichor:
3753
3754   - Add support for using Ghostscript to convert Postscript to PDF files.
3755
3756   From Anthony Roach:
3757
3758   - Add a standalone "Alias" function (separate from an Environment).
3759
3760   - Make Export() work for local variables.
3761
3762   - Support passing a dictionary to Export().
3763
3764   - Support Import('*') to import everything that's been Export()ed.
3765
3766   - Fix an undefined exitvalmap on Win32 systems.
3767
3768   - Support new SetOption() and GetOption() functions for setting
3769     various command-line options from with an SConscript file.
3770
3771   - Deprecate the old SetJobs() and GetJobs() functions in favor of
3772     using the new generic {Set,Get}Option() functions.
3773
3774   - Fix a number of tests that searched for a Fortran compiler using the
3775     external PATH instead of what SCons would use.
3776
3777   - Fix the interaction of SideEffect() and BuildDir() so that (for
3778     example) PDB files get put correctly in a BuildDir().
3779
3780   From David Snopek:
3781
3782   - Contribute the "Autoscons" code for Autoconf-like checking for
3783     the existence of libraries, header files and the like.
3784
3785   - Have the Tool() function add the tool name to the $TOOLS
3786     construction variable.
3787
3788   From Greg Spencer:
3789
3790   - Support the C preprocessor #import statement.
3791
3792   - Allow the SharedLibrary() Builder on Win32 systems to be able to
3793     register a newly-built dll using regsvr32.
3794
3795   - Add a Builder for Windows type library (.tlb) files from IDL files.
3796
3797   - Add an IDL scanner.
3798
3799   - Refactor the Fortran, C and IDL scanners to share common logic.
3800
3801   - Add .srcpath and .srcdir attributes to $TARGET and $SOURCE.
3802
3803   From Christoph Wiedemann:
3804
3805   - Integrate David Snopek's "Autoscons" code as the new SConf
3806     configuration subsystem, including caching of values between
3807     runs (using normal SCons dependency mechanisms), tests, and
3808     documentation.
3809
3810
3811
3812 RELEASE 0.13 - Mon, 31 Mar 2003 20:22:00 -0600
3813
3814   From Charles Crain:
3815
3816   - Fix a bug when BuildDir(duplicate=0) is used and SConscript
3817     files are called from within other SConscript files.
3818
3819   - Support (older) versions of Perforce which don't set the Windows
3820     registry.
3821
3822
3823
3824 RELEASE 0.12 - Thu, 27 Mar 2003 23:52:09 -0600
3825
3826   From Charles Crain:
3827
3828   - Added support for the Perforce source code management system.
3829
3830   - Fix str(Node.FS) so that it returns a path relative to the calling
3831     SConscript file's directory, not the top-level directory.
3832
3833   - Added support for a separate src_dir argument to SConscript()
3834     that allows explicit specification of where the source files
3835     for an SConscript file can be found.
3836
3837   - Support more easily re-usable flavors of command generators by
3838     calling callable variables when strings are expanded.
3839
3840   From Steven Knight:
3841
3842   - Added an INSTALL construction variable that can be set to a function
3843     to control how the Install() and InstallAs() Builders install files.
3844     The default INSTALL function now copies, not links, files.
3845
3846   - Remove deprecated features:  the "name" argument to Builder objects,
3847     and the Environment.Update() method.
3848
3849   - Add an Environment.SourceCode() method to support fetching files
3850     from source code systems.  Add factory methods that create Builders
3851     to support BitKeeper, CVS, RCS, and SCCS.  Add support for fetching
3852     files from RCS or SCCS transparently (like GNU Make).
3853
3854   - Make the internal to_String() function more efficient.
3855
3856   - Make the error message the same as other build errors when there's a
3857     problem unlinking a target file in preparation for it being built.
3858
3859   - Make TARGET, TARGETS, SOURCE and SOURCES reserved variable names and
3860     warn if the user tries to set them in a construction environment.
3861
3862   - Add support for Tar and Zip files.
3863
3864   - Better documentation of the different ways to export variables to a
3865     subsidiary SConscript file.  Fix documentation bugs in a tools
3866     example, places that still assumed SCons split strings on white
3867     space, and typos.
3868
3869   - Support fetching arbitrary files from the TARGETS or SOURCES lists
3870     (e.g. ${SOURCES[2]}) when calculating the build signature of a
3871     command.
3872
3873   - Don't silently swallow exceptions thrown by Scanners (or other
3874     exceptions while finding a node's dependent children).
3875
3876   - Push files to CacheDir() before calling the superclass built()
3877     method (which may clear the build signature as part of clearing
3878     cached implicit dependencies, if the file has a source scanner).
3879     (Bug reported by Jeff Petkau.)
3880
3881   - Raise an internal error if we attempt to push a file to CacheDir()
3882     with a build signature of None.
3883
3884   - Add an explicit Exit() function for terminating early.
3885
3886   - Change the documentation to correctly describe that the -f option
3887     doesn't change to the directory in which the specified file lives.
3888     
3889   - Support changing directories locally with SConscript directory
3890     path names relative to any SConstruct file specified with -f.
3891     This allows you to build in another directory by simply changing
3892     there and pointing at the SConstruct file in another directory.
3893
3894   - Change the default SConscriptChdir() behavior to change to the
3895     SConscript directory while it's being read.
3896
3897   - Fix an exception thrown when the -U option was used with no
3898     Default() target specified.
3899
3900   - Fix -u so that it builds things in corresponding build directories
3901     when used in a source directory.
3902
3903   From Lachlan O'Dea:
3904
3905   - Add SharedObject() support to the masm tool.
3906
3907   - Fix WhereIs() to return normalized paths.
3908
3909   From Jeff Petkau:
3910
3911   - Don't copy a built file to a CacheDir() if it's already there.
3912
3913   - Avoid partial copies of built files in a CacheDir() by copying
3914     to a temporary file and renaming.
3915
3916   From Anthony Roach:
3917
3918   - Fix incorrect dependency-cycle errors when an Aliased source doesn't
3919     exist.
3920
3921
3922
3923 RELEASE 0.11 - Tue, 11 Feb 2003 05:24:33 -0600
3924
3925   From Chad Austin:
3926
3927   - Add support for IRIX and the SGI MIPSPro tool chain.
3928
3929   - Support using the MSVC tool chain when running Cygwin Python.
3930
3931   From Michael Cook:
3932
3933   - Avoid losing signal bits in the exit status from a command,
3934     helping terminate builds on interrupt (CTRL+C).
3935
3936   From Charles Crain:
3937
3938   - Added new AddPreAction() and AddPostAction() functions that support
3939     taking additional actions before or after building specific targets.
3940
3941   - Add support for the PharLap ETS tool chain.
3942
3943   From Steven Knight:
3944
3945   - Allow Python function Actions to specify a list of construction
3946     variables that should be included in the Action's signature.
3947
3948   - Allow libraries in the LIBS variable to explicitly include the prefix
3949     and suffix, even when using the GNU linker.
3950     (Bug reported by Neal Becker.)
3951
3952   - Use DOS-standard CR-LF line endings in the scons.bat file.
3953     (Bug reported by Gary Ruben.)
3954
3955   - Doc changes:  Eliminate description of deprecated "name" keyword
3956     argument from Builder definition (reported by Gary Ruben).
3957
3958   - Support using env.Append() on BUILDERS (and other dictionaries).
3959     (Bug reported by Bj=F6rn Bylander.)
3960
3961   - Setting the BUILDERS construction variable now properly clears
3962     the previous Builder attributes from the construction Environment.
3963     (Bug reported by Bj=F6rn Bylander.)
3964
3965   - Fix adding a prefix to a file when the target isn't specified.
3966     (Bug reported by Esa Ilari Vuokko.)
3967
3968   - Clean up error messages from problems duplicating into read-only
3969     BuildDir directories or into read-only files.
3970
3971   - Add a CommandAction.strfunction() method, and add an "env" argument
3972     to the FunctionAction.strfunction() method, so that all Action
3973     objects have strfunction() methods, and the functions for building
3974     and returning a string both take the same arguments.
3975
3976   - Add support for new CacheDir() functionality to share derived files
3977     between builds, with related options --cache-disable, --cache-force,
3978     and --cache-show.
3979
3980   - Change the default behavior when no targets are specified to build
3981     everything in the current directory and below (like Make).  This
3982     can be disabled by specifying Default(None) in an SConscript.
3983
3984   - Revamp SCons installation to fix a case-sensitive installation
3985     on Win32 systems, and to add SCons-specific --standard-lib,
3986     --standalone-lib, and --version-lib options for easier user
3987     control of where the libraries get installed.
3988
3989   - Fix the ability to directly import and use Platform and Tool modules
3990     that have been implicitly imported into an Environment().
3991
3992   - Add support for allowing an embedding interface to annotate a node
3993     when it's created.
3994
3995   - Extend the SConscript() function to accept build_dir and duplicate
3996     keyword arguments that function like a BuildDir() call.
3997
3998   From Steve Leblanc:
3999
4000   - Fix the output of -c -n when directories are involved, so it
4001     matches -c.
4002
4003   From Anthony Roach:
4004
4005   - Use a different shared object suffix (.os) when using gcc so shared
4006     and static objects can exist side-by-side in the same directory.
4007
4008   - Allow the same object files on Win32 to be linked into either
4009     shared or static libraries.
4010
4011   - Cache implicit cache values when using --implicit-cache.
4012
4013
4014
4015 RELEASE 0.10 - Thu, 16 Jan 2003 04:11:46 -0600
4016
4017   From Derrick 'dman' Hudson:
4018
4019   - Support Repositories on other file systems by symlinking or
4020     copying files when hard linking won't work.
4021
4022   From Steven Knight:
4023
4024   - Remove Python bytecode (*.pyc) files from the scons-local packages.
4025
4026   - Have FunctionActions print a description of what they're doing
4027     (a representation of the Python call).
4028
4029   - Fix the Install() method so that, like other actions, it prints
4030     what would have happened when the -n option is used.
4031
4032   - Don't create duplicate source files in a BuildDir when the -n
4033     option is used.
4034
4035   - Refactor the Scanner interface to eliminate unnecessary Scanner
4036     calls and make it easier to write efficient scanners.
4037
4038   - Added a "recursive" flag to Scanner creation that specifies the
4039     Scanner should be invoked recursively on dependency files returned
4040     by the scanner.
4041
4042   - Significant performance improvement from using a more efficient
4043     check, throughout the code, for whether a Node has a Builder.
4044
4045   - Fix specifying only the source file to MultiStepBuilders such as
4046     the Program Builder.  (Bug reported by Dean Bair.)
4047
4048   - Fix an exception when building from a file with the same basename as
4049     the subdirectory in which it lives.  (Bug reported by Gerard Patel.)
4050
4051   - Fix automatic deduction of a target file name when there are
4052     multiple source files specified; the target is now deduced from just
4053     the first source file in the list.
4054
4055   - Documentation fixes: better initial explanation of SConscript files;
4056     fix a misformatted "table" in the StaticObject explanation.
4057
4058   From Steven Knight and Steve Leblanc:
4059
4060   - Fix the -c option so it will remove symlinks.
4061
4062   From Steve Leblanc:
4063
4064   - Add a Clean() method to support removing user-specified targets
4065     when using the -c option.
4066
4067   - Add a development script for running SCons through PyChecker.
4068
4069   - Clean up things found by PyChecker (mostly unnecessary imports).
4070
4071   - Add a script to use HappyDoc to create HTML class documentation.
4072
4073   From Lachlan O'Dea:
4074
4075   - Make the Environment.get() method return None by default.
4076
4077   From Anthony Roach:
4078
4079   - Add SetJobs() and GetJobs() methods to allow configuration of the
4080     number of default jobs (still overridden by -j).
4081
4082   - Convert the .sconsign file format from ASCII to a pickled Python
4083     data structure.
4084
4085   - Error message cleanups:  Made consistent the format of error
4086     messages (now all start with "scons: ***") and warning messages (now
4087     all start with "scons: warning:").  Caught more cases with the "Do
4088     not know how to build" error message.
4089
4090   - Added support for the MinGW tool chain.
4091
4092   - Added a --debug=includes option.
4093
4094
4095
4096 RELEASE 0.09 - Thu,  5 Dec 2002 04:48:25 -0600
4097
4098   From Chad Austin:
4099
4100   - Add a Prepend() method to Environments, to append values to
4101     the beginning of construction variables.
4102
4103   From Matt Balvin:
4104
4105   - Add long command-line support to the "lib" Tool (Microsoft library
4106     archiver), too.
4107
4108   From Charles Crain:
4109
4110   - Allow $$ in a string to be passed through as $.
4111
4112   - Support file names with odd characters in them.
4113
4114   - Add support for construction variable substition on scanner
4115     directories (in CPPPATH, F77PATH, LIBPATH, etc.).
4116
4117   From Charles Crain and Steven Knight:
4118
4119   - Add Repository() functionality, including the -Y option.
4120
4121   From Steven Knight:
4122
4123   - Fix auto-deduction of target names so that deduced targets end
4124     up in the same subdirectory as the source.
4125
4126   - Don't remove source files specified on the command line!
4127
4128   - Suport the Intel Fortran Compiler (ifl.exe).
4129
4130   - Supply an error message if there are no command-line or
4131     Default() targets specified.
4132
4133   - Fix the ASPPCOM values for the GNU assembler.
4134     (Bug reported by Brett Polivka.)
4135
4136   - Fix an exception thrown when a Default() directory was specified
4137     when using the -U option.
4138
4139   - Issue a warning when -c can't remove a target.
4140
4141   - Eliminate unnecessary Scanner calls by checking for the
4142     existence of a file before scanning it.  (This adds a generic
4143     hook to check an arbitrary condition before scanning.)
4144
4145   - Add explicit messages to tell when we're "Reading SConscript files
4146     ...," "done reading SConscript files," "Building targets," and
4147     "done building targets."  Add a -Q option to supress these.
4148
4149   - Add separate $SHOBJPREFIX and $SHOBJSUFFIX construction variables
4150     (by default, the same as $OBJPREFIX and $OBJSUFFIX).
4151
4152   - Add Make-like error messages when asked to build a source file,
4153     and before trying to build a file that doesn't have all its source
4154     files (including when an invalid drive letter is used on WIN32).
4155
4156   - Add an scons-local-{version} package (in both .tar.gz and .zip
4157     flavors) to help people who want to ship SCons as a stand-alone
4158     build tool in their software packages.
4159
4160   - Prevent SCons from unlinking files in certain situations when
4161     the -n option is used.
4162
4163   - Change the name of Tool/lib.py to Tool/mslib.py.
4164
4165   From Steven Knight and Anthony Roach:
4166
4167   - Man page:  document the fact that Builder calls return Node objects.
4168
4169   From Steve LeBlanc:
4170
4171   - Refactor option processing to use our own version of Greg Ward's
4172     Optik module, modified to run under Python 1.5.2.
4173
4174   - Add a ParseConfig() command to modify an environment based on
4175     parsing output from a *-config command.
4176
4177   From Jeff Petkau:
4178
4179   - Fix interpretation of '#/../foo' on Win32 systems.
4180
4181   From Anthony Roach:
4182
4183   - Fixed use of command lines with spaces in their arguments,
4184     and use of Nodes with spaces in their string representation.
4185
4186   - Make access and modification times of files in a BuildDir match
4187     the source file, even when hard linking isn't available.
4188
4189   - Make -U be case insensitive on Win32 systems.
4190
4191   - Issue a warning and continue when finding a corrupt .sconsign file.
4192
4193   - Fix using an alias as a dependency of a target so that if one of the
4194     alias' dependencies gets rebuilt, the resulting target will, too.
4195
4196   - Fix differently ordered targets causing unnecessary rebuilds
4197     on case insensitive systems.
4198
4199   - Use os.system() to execute external commands whenever the "env"
4200     utility is available, which is much faster than fork()/exec(),
4201     and fixes the -j option on several platforms.
4202
4203   - Fix use of -j with multiple targets.
4204
4205   - Add an Options() object for friendlier accomodation of command-
4206     line arguments.
4207
4208   - Add support for Microsoft VC++ precompiled header (.pch) files,
4209     debugger (.pdb) files, and resource (.rc) files.
4210
4211   - Don't compute the $_CPPINCFLAGS, $_F77INCFLAGS, $_LIBFLAGS and
4212     $_LIBDIRFLAGS variables each time a command is executed, define
4213     them so they're computed only as needed.  Add a new _concat
4214     function to the Environment that allows people to define their
4215     own similar variables.
4216
4217   - Fix dependency scans when $LIBS is overridden.
4218
4219   - Add EnsurePythonVersion() and EnsureSConsVersion() functions.
4220
4221   - Fix the overly-verbose stack trace on ListBuilder build errors.
4222
4223   - Add a SetContentSignatureType() function, allowing use of file
4224     timestamps instead of MD5 signatures.
4225
4226   - Make -U and Default('source') fail gracefully.
4227
4228   - Allow the File() and Dir() methods to take a path-name string as
4229     the starting directory, in addition to a Dir object.
4230
4231   - Allow the command handler to be selected via the SPAWN, SHELL
4232     and ESCAPE construction variables.
4233
4234   - Allow construction variables to be overridden when a Builder
4235     is called.
4236
4237   From sam th:
4238
4239   - Dynamically check for the existence of utilities with which to
4240     initialize Environments by default.
4241
4242
4243
4244 RELEASE 0.08 - Mon, 15 Jul 2002 12:08:51 -0500
4245
4246   From Charles Crain:
4247
4248   - Fixed a bug with relative CPPPATH dirs when using BuildDir().
4249     (Bug reported by Bob Summerwill.)
4250
4251   - Added a warnings framework and a --warn option to enable or
4252     disable warnings.
4253
4254   - Make the C scanner warn users if files referenced by #include
4255     directives cannot be found and --warn=dependency is specified.
4256
4257   - The BUILDERS construction variable should now be a dictionary
4258     that maps builder names to actions.  Existing uses of lists,
4259     and the Builder name= keyword argument, generate warnings
4260     about use of deprecated features.
4261
4262   - Removed the "shared" keyword argument from the Object and
4263     Library builders.
4264     
4265   - Added separated StaticObject, SharedObject, StaticLibrary and
4266     SharedLibrary builders.  Made Object and Library synonyms for
4267     StaticObject and StaticLibrary, respectively.
4268
4269   - Add LIBS and LIBPATH dependencies for shared libraries.
4270
4271   - Removed support for the prefix, suffix and src_suffix arguments
4272     to Builder() to be callable functions.
4273
4274   - Fix handling file names with multiple dots.
4275
4276   - Allow a build directory to be outside of the SConstruct tree.
4277
4278   - Add a FindFile() function that searches for a file node with a
4279     specified name.
4280
4281   - Add $CPPFLAGS to the shared-object command lines for g++ and gcc.
4282
4283   From Charles Crain and Steven Knight:
4284
4285   - Add a "tools=" keyword argument to Environment instantiation,
4286     and a separate Tools() method, for more flexible specification
4287     of tool-specific environment changes.
4288
4289   From Steven Knight:
4290
4291   - Add a "platform=" keyword argument to Environment instantiation,
4292     and a separate Platform() method, for more flexible specification
4293     of platform-specific environment changes.
4294
4295   - Updated README instructions and setup.py code to catch an
4296     installation failure from not having distutils installed.
4297
4298   - Add descriptions to the -H help text for -D, -u and -U so
4299     people can tell them apart.
4300
4301   - Remove the old feature of automatically splitting strings
4302     of file names on white space.
4303
4304   - Add a dependency Scanner for native Fortran "include" statements,
4305     using a new "F77PATH" construction variable.
4306
4307   - Fix C #include scanning to detect file names with characters like
4308     '-' in them.
4309
4310   - Add more specific version / build output to the -v option.
4311
4312   - Add support for the GNU as, Microsoft masm, and nasm assemblers.
4313
4314   - Allow the "target" argument to a Builder call to be omitted, in
4315     which case the target(s) are deduced from the source file(s) and the
4316     Builder's specified suffix.
4317
4318   - Add a tar archive builder.
4319
4320   - Add preliminary support for the OS/2 Platform, including the icc
4321     and ilink Tools.
4322
4323   From Jeff Petkau:
4324
4325   - Fix --implicit-cache if the scanner returns an empty list.
4326
4327   From Anthony Roach:
4328
4329   - Add a "multi" keyword argument to Builder creation that specifies
4330     it's okay to call the builder multiple times for a target.
4331
4332   - Set a "multi" on Aliases so multiple calls will append to an Alias.
4333
4334   - Fix emitter functions' use of path names when using BuildDir or
4335     in subdirectories.
4336
4337   - Fix --implicit-cache causing redundant rebuilds when the header
4338     file list changed.
4339
4340   - Fix --implicit-cache when a file has no implicit dependencies and
4341     its source is generated.
4342
4343   - Make the drive letters on Windows always be the same case, so that
4344     changes in the case of drive letters don't cause a rebuild.
4345
4346   - Fall back to importing the SCons.TimeStamp module if the SCons.MD5
4347     module can't be imported.
4348
4349   - Fix interrupt handling to guarantee that a single interrupt will
4350     halt SCons both when using -j and not.
4351
4352   - Fix .sconsign signature storage so that output files of one build
4353     can be safely used as input files to another build.
4354
4355   - Added a --debug=time option to print SCons execution times.
4356
4357   - Print an error message if a file can't be unlinked before being
4358     built, rather than just silently terminating the build.
4359
4360   - Add a SideEffect() method that can be used to tell the build
4361     engine that a given file is created as a side effect of building
4362     a target.  A file can be specified as a side effect of more than
4363     one build comand, in which case the commands will not be executed
4364     simultaneously.
4365
4366   - Significant performance gains from not using our own version of
4367     the inefficient stock os.path.splitext() method, caching source
4368     suffix computation, code cleanup in MultiStepBuilder.__call__(),
4369     and replicating some logic in scons_subst().
4370
4371   - Add --implicit-deps-changed and --implicit-deps-unchanged options.
4372
4373   - Add a GetLaunchDir() function.
4374
4375   - Add a SetBuildSignatureType() function.
4376
4377   From Zed Shaw:
4378
4379   - Add an Append() method to Environments, to append values to
4380     construction variables.
4381
4382   - Change the name of Update() to Replace().  Keep Update() as a
4383     deprecated synonym, at least for now.
4384
4385   From Terrel Shumway:
4386
4387   - Use a $PYTHON construction variable, initialized to sys.executable,
4388     when using Python to build parts of the SCons packages.
4389
4390   - Use sys.prefix, not sys.exec_prefix, to find pdb.py.
4391
4392
4393
4394 RELEASE 0.07 - Thu,  2 May 2002 13:37:16 -0500
4395
4396   From Chad Austin:
4397
4398   - Changes to build SCons packages on IRIX (and other *NIces).
4399
4400   - Don't create a directory Node when a file already exists there,
4401     and vice versa.
4402
4403   - Add 'dirs' and 'names' keyword arguments to SConscript for
4404     easier specification of subsidiary SConscript files.
4405
4406   From Charles Crain:
4407
4408   - Internal cleanup of environment passing to function Actions.
4409
4410   - Builders can now take arbitrary keyword arguments to create
4411     attributes to be passed to: command generator functions,
4412     FunctionAction functions, Builder emitter functions (below),
4413     and prefix/suffix generator functions (below).
4414
4415   - Command generator functions can now return ANYTHING that can be
4416     converted into an Action (a function, a string, a CommandGenerator
4417     instance, even an ActionBase instance).
4418
4419   - Actions now call get_contents() with the actual target and source
4420     nodes used for the build.
4421
4422   - A new DictCmdGenerator class replaces CompositeBuilder to support
4423     more flexible Builder behavior internally.
4424
4425   - Builders can now take an emitter= keyword argument.  An emitter
4426     is a function that takes target, source, and env argument, then
4427     return a 2-tuple of (new sources, new targets).  The emitter is
4428     called when the Builder is __call__'ed, allowing a user to modify
4429     source and target lists.
4430
4431   - The prefix, suffix and src_suffix Builder arguments now take a
4432     callable as well a string.  The callable is passed the Environment
4433     and any extra Builder keyword arguments and is expected to return
4434     the appropriate prefix or suffix.
4435
4436   - CommandActions can now be a string, a list of command + argument
4437     strings, or a list of commands (strings or lists).
4438
4439   - Added shared library support.  The Object and Library Builders now
4440     take a "shared=1" keyword argument to specify that a shared object
4441     or shared library should be built.  It is an error to try to build
4442     static objects into a shared library or vice versa.
4443
4444   - Win32 support for .def files has been added.  Added the Win32-specific
4445     construction variables $WIN32DEFPREFIX, $WIN32DEFSUFFIX,
4446     $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX.  When building a .dll,
4447     the new construction variable $WIN32_INSERT_DEF, controls whether
4448     the appropriately-named .def file is inserted into the target
4449     list (if not already present).  A .lib file is always added to
4450     a Library build if not present in the list of targets.
4451
4452   - ListBuilder now passes all targets to the action, not just the first.
4453
4454   - Fix so that -c now deletes generated yacc .h files.
4455
4456   - Builder actions and emitter functions can now be initialized, through
4457     construction variables, to things other than strings.
4458
4459   - Make top-relative '#/dir' lookups work like '#dir'.
4460
4461   - Fix for relative CPPPATH directories in subsidiary SConscript files
4462     (broken in 0.06).
4463
4464   - Add a for_signature argument to command generators, so that
4465     generators that need to can return distinct values for the
4466     command signature and for executing the command.
4467
4468   From Alex Jacques:
4469
4470   - Create a better scons.bat file from a py2bat.py script on the Python
4471     mailing list two years ago (modeled after pl2bat.pl).
4472
4473   From Steven Knight:
4474
4475   - Fix so that -c -n does *not* remove the targets!
4476
4477   - Man page:  Add a hierarchical libraries + Program example.
4478
4479   - Support long MSVC linker command lines through a builder action
4480     that writes to a temporary file and uses the magic MSVC "link @file"
4481     argument syntax if the line is longer than 2K characters.
4482
4483   - Fix F77 command-line options on Win32 (use /Fo instead of -o).
4484
4485   - Use the same action to build from .c (lower case) and .C (upper
4486     case) files on case-insensitive systems like Win32.
4487
4488   - Support building a PDF file directly from a TeX or LaTeX file
4489     using pdftex or pdflatex.
4490
4491   - Add a -x option to runtest.py to specify the script being tested.
4492     A -X option indicates it's an executable, not a script to feed
4493     to the Python interpreter.
4494
4495   - Add a Split() function (identical to SCons.Util.argmunge()) for use
4496     in the next release, when Builders will no longer automatically split
4497     strings on white space.
4498
4499   From Steve Leblanc:
4500
4501   - Add the SConscriptChdir() method.
4502
4503   From Anthony Roach:
4504
4505   - Fix --debug=tree when used with directory targets.
4506
4507   - Significant internal restructuring of Scanners and Taskmaster.
4508
4509   - Added new --debug=dtree option.
4510
4511   - Fixes for --profile option.
4512
4513   - Performance improvement in construction variable substitution.
4514
4515   - Implemented caching of content signatures, plus added --max-drift
4516     option to control caching.
4517
4518   - Implemented caching of dependency signatures, enabled by new
4519     --implicit-cache option.
4520
4521   - Added abspath construction variable modifier.
4522
4523   - Added $SOURCE variable as a synonym for $SOURCES[0].
4524
4525   - Write out .sconsign files on error or interrupt so intermediate
4526     build results are saved.
4527
4528   - Change the -U option to -D.  Make a new -U that builds just the
4529     targets from the local SConscript file.
4530
4531   - Fixed use of sys.path so Python modules can be imported from
4532     the SConscript directory.
4533
4534   - Fix for using Aliases with the -u, -U and -D options.
4535
4536   - Fix so that Nodes can be passed to SConscript files.
4537
4538   From Moshe Zadka:
4539   
4540   - Changes for official Debian packaging.
4541
4542
4543
4544 RELEASE 0.06 - Thu, 28 Mar 2002 01:24:29 -0600
4545
4546   From Charles Crain:
4547
4548   - Fix command generators to expand construction variables.
4549
4550   - Make FunctionAction arguments be Nodes, not strings.
4551
4552   From Stephen Kennedy:
4553
4554   - Performance:  Use a dictionary, not a list, for a Node's parents.
4555
4556   From Steven Knight:
4557
4558   - Add .zip files to the packages we build.
4559
4560   - Man page:  document LIBS, fix a typo, document ARGUMENTS.
4561
4562   - Added RANLIB and RANLIBFLAGS construction variables.  Only use them
4563     in ARCOM if there's a "ranlib" program on the system.
4564
4565   - Add a configurable CFILESUFFIX for the Builder of .l and .y files
4566     into C files.
4567
4568   - Add a CXXFile Builder that turns .ll and .yy files into .cc files
4569     (configurable via a CXXFILESUFFIX construction variable).
4570
4571   - Use the POSIX-standard lex -t flag, not the GNU-specific -o flag.
4572     (Bug reported by Russell Christensen.)
4573
4574   - Fixed an exception when CPPPATH or LIBPATH is a null string.
4575     (Bug reported by Richard Kiss.)
4576
4577   - Add a --profile=FILE option to make profiling SCons easier.
4578
4579   - Modify the new DVI builder to create .dvi files from LaTeX (.ltx
4580     and .latex) files.
4581
4582   - Add support for Aliases (phony targets).
4583
4584   - Add a WhereIs() method for searching for path names to executables.
4585
4586   - Add PDF and PostScript document builders.
4587
4588   - Add support for compiling Fortran programs from a variety of
4589     suffixes (a la GNU Make):  .f, .F, .for, .FOR, .fpp and .FPP
4590
4591   - Support a CPPFLAGS variable on all default commands that use the
4592     C preprocessor.
4593
4594   From Steve Leblanc:
4595
4596   - Add support for the -U option.
4597
4598   - Allow CPPPATH, LIBPATH and LIBS to be specified as white-space
4599     separated strings.
4600
4601   - Add a document builder to create .dvi files from TeX (.tex) files.
4602
4603   From Anthony Roach:
4604
4605   - Fix:  Construction variables with values of 0 were incorrectly
4606     interpolated as ''. 
4607
4608   - Support env['VAR'] to fetch construction variable values.
4609
4610   - Man page:  document Precious().
4611
4612
4613
4614 RELEASE 0.05 - Thu, 21 Feb 2002 16:50:03 -0600
4615
4616   From Chad Austin:
4617
4618   - Set PROGSUFFIX to .exe under Cygwin.
4619
4620   From Charles Crain:
4621
4622   - Allow a library to specified as a command-line source file, not just
4623     in the LIBS construction variable.
4624
4625   - Compensate for a bug in os.path.normpath() that returns '' for './'
4626     on WIN32.
4627
4628   - More performance optimizations:  cache #include lines from files,
4629     eliminate unnecessary calls.
4630
4631   - If a prefix or suffix contains white space, treat the resulting
4632     concatenation as separate arguments.
4633
4634   - Fix irregularities in the way we fetch DevStudio information from
4635     the Windows registry, and in our registry error handling.
4636
4637   From Steven Knight:
4638
4639   - Flush stdout after print so it intermixes correctly with stderr
4640     when redirected.
4641
4642   - Allow Scanners to return a list of strings, and document how to
4643     write your own Scanners.
4644
4645   - Look up implicit (scanned) dependencies relative to the directory
4646     of file being scanned.
4647
4648   - Make writing .sconsign files more robust by first trying to write
4649     to a temp file that gets renamed.
4650
4651   - Create all of the directories for a list of targets before trying
4652     to build any of the targets.
4653
4654   - WIN32 portability fixes in tests.
4655
4656   - Allow the list of variables exported to an SConscript file to be
4657     a UserList, too.
4658
4659   - Document the overlooked LIBPATH construction variable.
4660     (Bug reported by Eicke Godehardt.)
4661
4662   - Fix so that Ignore() ignores indirect, implicit dependencies
4663     (included files), not just direct dependencies.
4664
4665   - Put the man page in the Debian distribution.
4666
4667   - Run HTML docs through tidy to clean up the HTML (for Konqueror).
4668
4669   - Add preliminary support for Unicode strings.
4670
4671   - Efficiency:  don't scan dependencies more than once during the
4672     walk of a tree.
4673
4674   - Fix the -c option so it doesn't stop removing targets if one doesn't
4675     already exist.
4676     (Bug reported by Paul Connell.)
4677
4678   - Fix the --debug=pdb option when run on Windows NT.
4679     (Bug reported by Paul Connell.)
4680
4681   - Add support for the -q option.
4682
4683   From Steve Leblanc:
4684
4685   - Add support for the -u option.
4686
4687   - Add .cc and .hh file suffixes to the C Scanner.
4688
4689   From Anthony Roach:
4690
4691   - Make the scons script return an error code on failures.
4692
4693   - Add support for using code to generate a command to build a target.
4694
4695
4696
4697 RELEASE 0.04 - Wed, 30 Jan 2002 11:09:42 -0600
4698
4699   From Charles Crain:
4700
4701   - Significant performance improvements in the Node.FS and
4702     Scanner subsystems.
4703
4704   - Fix signatures of binary files on Win32 systems.
4705
4706   - Allow LIBS and LIBPATH to be strings, not just arrays.
4707
4708   - Print a traceback if a Python-function builder throws an exception.
4709
4710   From Steven Knight:
4711
4712   - Fix using a directory as a Default(), and allow Default() to
4713     support white space in file names for strings in arrays.
4714
4715   - Man page updates:  corrected some mistakes, documented various
4716     missing Environment methods, alphabetized the construction
4717     variables and other functions, defined begin and end macros for
4718     the example sections, regularized white space separation, fixed
4719     the use of Export() in the Multiple Variants example.
4720
4721   - Function action fixes:  None is now a successful return value.
4722     Exceptions are now reported.  Document function actions.
4723
4724   - Add 'Action' and 'Scanner' to the global keywords so SConscript
4725     files can use them too.
4726
4727   - Removed the Wrapper class between Nodes and Walkers.
4728
4729   - Add examples using Library, LIBS, and LIBPATH.
4730
4731   - The C Scanner now always returns a sorted list of dependencies
4732     so order changes don't cause unnecessary rebuilds.
4733
4734   - Strip $(-$) bracketed text from command lines.  Use this to
4735     surround $_INCDIRS and $_LIBDIRS so we don't rebuild in response
4736     to changes to -I or -L options.
4737
4738   - Add the Ignore() method to ignore dependencies.
4739
4740   - Provide an error message when a nonexistent target is specified
4741     on the command line.
4742
4743   - Remove targets before building them, and add an Environment
4744     Precious() method to override that.
4745
4746   - Eliminate redundant calls to the same builder when the target is a
4747     list of targets:  Add a ListBuilder class that wraps Builders to
4748     handle lists atomically.  Extend the Task class to support building
4749     and updating multiple targets in a single Task.  Simplify the
4750     interface between Task and Taskmaster.
4751
4752   - Add a --debug=pdb option to re-run SCons under the Python debugger.
4753
4754   - Only compute a build signature once for each node.
4755
4756   - Changes to our sys.path[] manipulation to support installation into
4757     an arbitrary --prefix value.
4758
4759   From Steve Leblanc:
4760
4761   - Add var=value command-line arguments.
4762
4763
4764
4765 RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600
4766
4767   From Charles Crain:
4768
4769   - Performance improvements in the Node.FS and Sig.Calculator classes.
4770
4771   - Add the InstallAs() method.
4772
4773   - Execute commands through an external interpreter (sh, cmd.exe, or
4774     command.com) to handle redirection metacharacters.
4775
4776   - Allow the user to supply a command handler.
4777
4778   From Steven Knight:
4779
4780   - Search both /usr/lib and /usr/local/lib for scons directories by
4781     adding them both to sys.path, with whichever is in sys.prefix first.
4782
4783   - Fix interpreting strings of multiple white-space separated file names
4784     as separate file names, allowing prefixes and suffixes to be appended
4785     to each individually.
4786
4787   - Refactor to move CompositeBuilder initialization logic from the
4788     factory wrapper to the __init__() method, and allow a Builder to
4789     have both an action and a src_builder (or array of them).
4790
4791   - Refactor BuilderBase.__call__() to separate Node creation/lookup
4792     from initialization of the Node's builder information.
4793
4794   - Add a CFile Builder object that supports turning lex (.l) and
4795     yacc (.y) files into .c files.
4796
4797   - Document: variable interpretation attributes; how to propogate
4798     the user's environment variables to executed commands; how to
4799     build variants in multiple BuildDirs.
4800
4801   - Collect String, Dict, and List type-checking in common utility
4802     routines so we can accept User{String,Dict,List}s all over.
4803
4804   - Put the Action factory and classes into their own module.
4805
4806   - Use one CPlusPlusAction in the Object Builder's action dictionary,
4807     instead of letting it create multiple identical instances.
4808
4809   - Document the Install() and InstallAs() methods.
4810
4811   From Steve Leblanc:
4812
4813   - Require that a Builder be given a name argument, supplying a
4814     useful error message when it isn't.
4815
4816   From Anthony Roach:
4817
4818   - Add a "duplicate" keyword argument to BuildDir() that can be set
4819     to prevent linking/copying source files into build directories.
4820
4821   - Add a "--debug=tree" option to print an ASCII dependency tree.
4822
4823   - Fetch the location of the Microsoft Visual C++ compiler(s) from
4824     the Registry, instead of hard-coding the location.
4825     
4826   - Made Scanner objects take Nodes, not path names.
4827     
4828   - Have the C Scanner cache the #include file names instead of
4829     (re-)scanning the file each time it's called.
4830
4831   - Created a separate class for parent "nodes" of file system roots,
4832     eliminating the need for separate is-parent-null checks everywhere.
4833     
4834   - Removed defined __hash__() and __cmp() methods from FS.Entry, in
4835     favor of Python's more efficient built-in identity comparisons.
4836
4837
4838
4839 RELEASE 0.02 - Sun, 23 Dec 2001 19:05:09 -0600
4840
4841   From Charles Crain:
4842
4843   - Added the Install(), BuildDir(), and Export() methods.
4844
4845   - Fix the -C option by delaying setting the top of the FS tree.
4846
4847   - Avoid putting the directory path on the libraries in the LIBS
4848     construction variable.
4849
4850   - Added a GetBuildPath() method to return the full path to the
4851     Node for a specified string.
4852
4853   - Fixed variable substitution in CPPPATH and LIBPATH.
4854
4855   From Steven Knight:
4856
4857   - Fixed the version comment in the scons.bat (the UNIX geek used
4858     # instead of @rem).
4859
4860   - Fix to setup.py so it doesn't require a sys.argv[1] argument.
4861
4862   - Provide make-like warning message for "command not found" and
4863     similar errors.
4864
4865   - Added an EXAMPLES section to the man page.
4866
4867   - Make Default() targets properly relative to their SConscript
4868     file's subdirectory.
4869
4870   From Anthony Roach:
4871
4872   - Documented CXXFLAGS, CXXCOM, and CPPPATH.
4873
4874   - Fixed SCONS_LIB_DIR to work as documented.
4875
4876   - Made Default() accept Nodes as arguments.
4877
4878   - Changed Export() to make it easier to use.
4879   
4880   - Added the Import() and Return() methods.
4881
4882
4883
4884 RELEASE 0.01 - Thu Dec 13 19:25:23 CST 2001
4885
4886 A brief overview of important functionality available in release 0.01:
4887
4888   - C and C++ compilation on POSIX and Windows NT.
4889
4890   - Automatic scanning of C/C++ source files for #include dependencies.
4891
4892   - Support for building libraries; setting construction variables
4893     allows creation of shared libraries.
4894
4895   - Library and C preprocessor search paths.
4896
4897   - File changes detected using MD5 signatures.
4898
4899   - User-definable Builder objects for building files.
4900
4901   - User-definable Scanner objects for scanning for dependencies.
4902
4903   - Parallel build (-j) support.
4904
4905   - Dependency cycles detected.
4906
4907   - Linux packages available in RPM and Debian format.
4908
4909   - Windows installer available.