Scons

Latest version: v4.9.0

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 9 of 14

0.98.1

From Benoit Belley:

- Speed up the SCons.Util.to_string*() functions.

- Optimize various Node intialization and calculations.

- Optimize Executor scanning code.

- Optimize Taskmaster execution, including dependency-cycle checking.

- Fix the --debug=stree option so it prints its tree once, not twice.

From Johan Boul�:

- Fix the ability to use LoadableModule() under MinGW.

From David Cournapeau:

- Various missing Fortran-related construction variables have been added.

- SCons now uses the program specified in the $FORTRAN construction
variable to link Fortran object files.

- Fortran compilers on Linux (Intel, g77 and gfortran) now add the -fPIC
option by default when compilling shared objects.

- New 'sunf77', 'sunf90' and 'sunf95' Tool modules have been added to
support Sun Fortran compilers. On Solaris, the Sun Fortran compilers
are used in preference to other compilers by default.

- Fortran support now uses gfortran in preference to g77.

- Fortran file suffixes are now configurable through the
$F77FILESUFFIXES, $F90FILESUFFIXES, $F95FILESUFFIXES and
$FORTRANFILESUFFIXES variables.

From Steven Knight:

- Make the -d, -e, -w and --no-print-directory options "Ignored for
compatibility." (We're not going to implement them.)

- Fix a serious inefficiency in how SCons checks for whether any source
files are missing when a Builder call creates many targets from many
input source files.

- In Java projects, make the target .class files depend only on the
specific source .java files where the individual classes are defined.

- Don't store duplicate source file entries in the .sconsign file so
we don't endlessly rebuild the target(s) for no reason.

- Add a Variables object as the first step towards deprecating the
Options object name. Similarly, add BoolVariable(), EnumVariable(),
ListVariable(), PackageVariable() and PathVariable() functions
as first steps towards replacing BoolOption(), EnumOption(),
ListOption(), PackageOption() and PathOption().

- Change the options= keyword argument to the Environment() function
to variables=, to avoid confusion with SCons command-line options.
Continue supporting the options= keyword for backwards compatibility.

- When $SWIGFLAGS contains the -python flag, expect the generated .py
file to be in the same (sub)directory as the target.

- When compiling C++ files, allow $CCFLAGS settings to show up on the
command line even when $CXXFLAGS has been redefined.

- Fix --interactive with -u/-U/-D when a VariantDir() is used.

From Anatoly Techtonik:

- Have the scons.bat file add the script execution directory to its
local %PATH% on Windows, so the Python executable can be found.

From Mike Wake:

- Fix passing variable names as a list to the Return() function.

From Matthew Wesley:

- Add support for the GDC 'D' language compiler.

0.98

From Benoit Belley:

- Fix the --keep-going flag so it builds all possible targets even when
a later top-level target depends on a child that failed its build.

- Fix being able to use $PDB and $WINDWOWS_INSERT_MANIFEST together.

- Don't crash if un-installing the Intel C compiler leaves left-over,
dangling entries in the Windows registry.

- Improve support for non-standard library prefixes and suffixes by
stripping all prefixes/suffixes from file name string as appropriate.

- Reduce the default stack size for -j worker threads to 256 Kbytes.
Provide user control over this value by adding --stack-size and
--warn=stack-size options, and a SetOption('stack_size') function.

- Fix a crash on Linux systems when trying to use the Intel C compiler
and no /opt/intel_cc_* directories are found.

- Improve using Python functions as actions by incorporating into
a FunctionAction's signature:
- literal values referenced by the byte code.
- values of default arguments
- code of nested functions
- values of variables captured by closures
- names of referenced global variables and functions

- Fix the closing message when --clean and --keep-going are both
used and no errors occur.

- Add support for the Intel C compiler on Mac OS X.

- Speed up reading SConscript files by about 20% (for some
configurations) by: 1) optimizing the SCons.Util.is_*() and
SCons.Util.flatten() functions; 2) avoiding unnecessary os.stat()
calls by using a File's .suffix attribute directly instead of
stringifying it.

From Jérôme Berger:

- Have the D language scanner search for .di files as well as .d files.

- Add a find_include_names() method to the Scanner.Classic class to
abstract out how included names can be generated by subclasses.

- Allow the D language scanner to detect multiple modules imported by
a single statement.

From Konstantin Bozhikov:

- Support expansion of construction variables that contain or refer
to lists of other variables or Nodes within expansions like $CPPPATH.

- Change variable substitution (the env.subst() method) so that an
input sequence (list or tuple) is preserved as a list in the output.

From David Cournapeau:

- Add a CheckDeclaration() call to configure contexts.

- Improve the CheckTypeSize() code.

- Add a Define() call to configure contexts, to add arbitrary define
lines to a generated configure header file.

- Add a "gfortran" Tool module for the GNU F95/F2003 compiler.

- Avoid use of -rpath with the Mac OS X linker.

- Add comment lines to the generated config.h file to describe what
the various define/undef lines are doing.

From Steven Knight:

- Support the ability to subclass the new-style "str" class as input
to Builders.

- Improve the performance of our type-checking by using isinstance()
with new-style classes.

- Fix include (and other $*PATH variables searches) of files with
absolute path names. Don't die if they don't exist (due to being
ifdef'ed out or the like).

- Fix --interactive mode when Default(None) is used.

- Fix --debug=memoizer to work around a bug in base Python 2.2 metaclass
initialization (by just not allowing Memoization in Python versions
that have the bug).

- Have the "scons-time time" subcommand handle empty log files, and
log files that contain no results specified by the --which option.

- Fix the max Y of vertical bars drawn by "scons-time --fmt=gnuplot".

- On Mac OS X, account for the fact that the header file generated
from a C++ file will be named (e.g.) file.cpp.h, not file.hpp.

- Fix floating-point numbers confusing the Java parser about
generated .class file names in some configurations.

- Document (nearly) all the values you can now fetch with GetOption().

- Fix use of file names containing strings of multiple spaces when
using ActionFactory instances like the Copy() or Move() function.

- Fix a 0.97 regression when using a variable expansion (like
$OBJSUFFIX) in a source file name to a builder with attached source
builders that match suffix (like Program()+Object()).

- Have the Java parser recognize generics (surrounded by angle brackets)
so they don't interfere with identifying anonymous inner classes.

- Avoid an infinite loop when trying to use saved copies of the
env.Install() or env.InstallAs() after replacing the method
attributes.

- Improve the performance of setting construction variables.

- When cloning a construction environment, avoid over-writing an
attribute for an added method if the user explicitly replaced it.

- Add a warning about deprecated support for Python 1.5, 2.0 and 2.1.

- Fix being able to SetOption('warn', ...) in SConscript files.

- Add a warning about env.Copy() being deprecated.

- Add warnings about the --debug={dtree,stree,tree} options
being deprecated.

- Add VariantDir() as the first step towards deprecating BuildDir().
Add the keyword argument "variant_dir" as the replacement for
"build_dir".

- Add warnings about the {Target,Source}Signatures() methods and
functions being deprecated.

From Rob Managan:

- Enhance TeX and LaTeX support to work with BuildDir(duplicate=0).

- Re-run LaTeX when it issues a package warning that it must be re-run.

From Leanid Nazdrynau:

- Have the Copy() action factory preserve file modes and times
when copying individual files.

From Jan Nijtmans:

- If $JARCHDIR isn't set explicitly, use the .java_classdir attribute
that was set when the Java() Builder built the .class files.

From Greg Noel:

- Document the Dir(), File() and Entry() methods of Dir and File Nodes.

- Add the parse_flags option when creating Environments

From Gary Oberbrunner:

- Make File(), Dir() and Entry() return a list of Nodes when passed
a list of names, instead of trying to make a string from the name
list and making a Node from that string.

- Fix the ability to build an Alias in --interactive mode.

- Fix the ability to hash the contents of actions for nested Python
functions on Python versions where the inability to pickle them
returns a TypeError (instead of the documented PicklingError).

From Jonas Olsson:

- Fix use of the Intel C compiler when the top compiler directory,
but not the compiler version, is specified.

- Handle Intel C compiler network license files (portsystem).

From Jim Randall:

- Fix how Python Value Nodes are printed in --debug=explain output.

From Adam Simpkins:

- Add a --interactive option that starts a session for building (or
cleaning) targets without re-reading the SConscript files every time.

- Fix use of readline command-line editing in --interactive mode.

- Have the --interactive mode "build" command with no arguments
build the specified Default() targets.

- Fix the Chmod(), Delete(), Mkdir() and Touch() Action factories to
take a list (of Nodes or strings) as arguments.

From Vaclav Smilauer:

- Fix saving and restoring an Options value of 'all' on Python
versions where all() is a builtin function.

From Daniel Svensson:

- Code correction in SCons.Util.is_List().

From Ben Webb:

- Support the SWIG %module statement with following modifiers in
parenthese (e.g., '%module(directors="1")').



RELEASE 0.97.0d20071212 - Wed, 12 Dec 2007 09:29:32 -0600

From Benoit Belley:

- Fix occasional spurious rebuilds and inefficiency when using
--implicit-cache and Builders that produce multiple targets.

- Allow SCons to not have to know about the builders of generated
files when BuildDir(duplicate=0) is used, potentially allowing some
SConscript files to be ignored for smaller builds.

From David Cournapeau:

- Add a CheckTypeSize() call to configure contexts.

From Ken Deeter:

- Make the "contents" of Alias Nodes a concatenation of the children's
content signatures (MD5 checksums), not a concatenation of the
children's contents, to avoid using large amounts of memory during
signature calculation.

From Malte Helmert:

- Fix a lot of typos in the man page and User's Guide.

From Geoffrey Irving:

- Speed up conversion of paths in .sconsign files to File or Dir Nodes.

From Steven Knight:

- Add an Options.UnknownOptions() method that returns any settings
(from the command line, or whatever dictionary was passed in)
that aren't known to the Options object.

- Add a Glob() function.

- When removing targets with the -c option, use the absolute path (to
avoid problems interpreting BuildDir() when the top-level directory
is the source directory).

- Fix problems with Install() and InstallAs() when called through a
clone (of a clone, ...) of a cloned construction environment.

- When executing a file containing Options() settings, add the file's
directory to sys.path (so modules can be imported from there) and
explicity set __name__ to the name of the file so the statement's
in the file can deduce the location if they need to.

- Fix an O(n^2) performance problem when adding sources to a target
through calls to a multi Builder (including Aliases).

- Redefine the $WINDOWSPROGMANIFESTSUFFIX and
$WINDOWSSHLIBMANIFESTSUFFIX variables so they pick up changes to
the underlying $SHLIBSUFFIX and $PROGSUFFIX variables.

- Add a GetBuildFailures() function that can be called from functions
registered with the Python atexit module to print summary information
about any failures encountered while building.

- Return a NodeList object, not a Python list, when a single_source
Builder like Object() is called with more than one file.

- When searching for implicit dependency files in the directories
in a $*PATH list, don't create Dir Nodes for directories that
don't actually exist on-disk.

- Add a Requires() function to allow the specification of order-only
prerequisites, which will be updated before specified "downstream"
targets but which don't actually cause the target to be rebuilt.

- Restore the FS.{Dir,File,Entry}.rel_path() method.

- Make the default behavior of {Source,Target}Signatures('timestamp')
be equivalent to 'timestamp-match', not 'timestamp-newer'.

- Fix use of CacheDir with Decider('timestamp-newer') by updating
the modification time when copying files from the cache.

- Fix random issues with parallel (-j) builds on Windows when Python
holds open file handles (especially for SCons temporary files,
or targets built by Python function actions) across process creation.

From Maxim Kartashev:

- Fix test scripts when run on Solaris.

From Gary Oberbrunner:

- Fix Glob() when a pattern is in an explicitly-named subdirectory.

From Philipp Scholl:

- Fix setting up targets if multiple Package builders are specified
at once.



RELEASE 0.97.0d20070918 - Tue, 18 Sep 2007 10:51:27 -0500

From Steven Knight:

- Fix the wix Tool module to handle null entries in $PATH variables.

- Move the documentation of Install() and InstallAs() from the list
of functions to the list of Builders (now that they're implemented
as such).

- Allow env.CacheDir() to be set per construction environment. The
global CacheDir() function now sets an overridable global default.

- Add an env.Decider() method and a Node.Decider() method that allow
flexible specification of an arbitrary function to decide if a given
dependency has changed since the last time a target was built.

- Don't execute Configure actions (while reading SConscript files)
when cleaning (-c) or getting help (-h or -H).

- Add to each target an implicit dependency on the external command(s)
used to build the target, as found by searching env['ENV']['PATH']
for the first argument on each executed command line.

- Add support for a $IMPLICIT_COMMAND_DEPENDENCIES construction
variabe that can be used to disable the automatic implicit
dependency on executed commands.

- Add an "ensure_suffix" keyword to Builder() definitions that, when
true, will add the configured suffix to the targets even if it looks
like they already have a different suffix.

- Add a Progress() function that allows for calling a function or string
(or list of strings) to display progress while walking the DAG.

- Allow ParseConfig(), MergeFlags() and ParseFlags() to handle output
from a *config command with quoted path names that contain spaces.

- Make the Return() function stop processing the SConscript file and
return immediately. Add a "stop=" keyword argument that can be set
to False to preserve the old behavior.

- Fix use of exitstatfunc on an Action.

- Introduce all man page function examples with "Example:" or "Examples:".

- When a file gets added to a directory, make sure the directory gets
re-scanned for the new implicit dependency.

- Fix handling a file that's specified multiple times in a target
list so that it doesn't cause dependent Nodes to "disappear" from
the dependency graph walk.

From Carsten Koch:

- Avoid race conditions with same-named files and directory creation
when pushing copies of files to CacheDir().

From Tzvetan Mikov:

- Handle $ in Java class names.

From Gary Oberbrunner:

- Add support for the Intel C compiler on Windows64.

- On SGI IRIX, have $SHCXX use $CXX by default (like other platforms).

From Sohail Somani:

- When Cloning a construction environment, set any variables before
applying tools (so the tool module can access the configured settings)
and re-set them after (so they end up matching what the user set).

From Matthias Troffaes:

- Make sure extra auxiliary files generated by some LaTeX packages
and not ending in .aux also get deleted by scons -c.

From Greg Ward:

- Add a $JAVABOOTCLASSPATH variable for directories to be passed to the
javac -bootclasspath option.

From Christoph Wiedemann:

- Add implicit dependencies on the commands used to build a target.




RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500

From Lars Albertsson:

- Don't error if a include line happens to match a directory
somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.).

From Mark Bertoglio:

- Fix listing multiple projects in Visual Studio 7.[01] solution files,
including generating individual project GUIDs instead of re-using
the solution GUID.

From Jean Brouwers:

- Add /opt/SUNWspro/bin to the default execution PATH on Solaris.

From Allan Erskine:

- Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c
files if the /proxy and /dlldata switches are used (respectively).

From Steven Knight:

- Have --debug=explain report if a target is being rebuilt because
AlwaysBuild() is specified (instead of "unknown reasons").

- Support {Get,Set}Option('help') to make it easier for SConscript
files to tell if a help option (-h, --help, etc.) has been specified.

- Support {Get,Set}Option('random') so random-dependency interaction
with CacheDir() is controllable from SConscript files.

- Add a new AddOption() function to support user-defined command-
line flags (like --prefix=, --force, etc.).

- Replace modified Optik version with new optparse compatibility module
for command line processing in Scripts/SConsOptions.py

- Push and retrieve built symlinks to/from a CacheDir() as actual
symlinks, not by copying the file contents.

- Fix how the Action module handles stringifying the shared library
generator in the Tool/mingw.py module.

- When generating a config.h file, print "define HAVE_{FEATURE} 1"
instad of just "define HAVE_{FEATURE}", for more compatibility
with Autoconf-style projects.

- Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in
Visual C/C++ PDB file names.

- Fix locating Visual C/C++ PDB files in build directories.

- Support an env.AddMethod() method and an AddMethod() global function
for adding a new method, respectively, to a construction environment
or an arbitrary object (such as a class).

- Fix the --debug=time option when the -j option is specified and all
files are up to date.

- Add a $SWIGOUTDIR variable to allow setting the swig -outdir option,
and use it to identify files created by the swig -java option.

- Add a $SWIGPATH variable that specifies the path to be searched
for included SWIG files, Also add related $SWIGINCPREFIX and
$SWIGINCSUFFIX variables that specify the prefix and suffix to
be be added to each $SWIGPATH directory when expanded on the SWIG
command line.

- More efficient copying of construction environments (mostly borrowed
from copy.deepcopy() in the standard Python library).

- When printing --tree=prune output, don't print [brackets] around
source files, only do so for built targets with children.

- Fix interpretation of Builder source arguments when the Builder has
a src_suffix *and* a source_builder and the argument has no suffix.

- Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the
following construction variables: $FORTRANMODDIR, $JARCHDIR,
$JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS.

- Fix dependencies on Java files generated by SWIG so they can be
detected and built in one pass.

- Fix SWIG when used with a BuildDir().

From Leanid Nazdrynau:

- When applying Tool modules after a construction environment has
already been created, don't overwrite existing $CFILESUFFIX and
$CXXFILESUFFIX value.

- Support passing the Java() builder a list of explicit .java files
(not only a list of directories to be scanned for .java files).

- Support passing .java files to the Jar() and JavaH() builders, which
then use the builder underlying the Java() builder to turn them into
.class files. (That is, the Jar()-Java() chain of builders become
multi-step, like the Program()-Object()-CFile() builders.)

- Support passing SWIG .i files to the Java builders (Java(),
Jar(), JavaH()), to cause intermediate .java files to be created
automatically.

- Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to
the javac "-classpath" and "-sourcepath" options. (Note that SCons
does *not* currently search these paths for implicit dependencies.)

- Commonize initialization of Java-related builders.

From Jan Nijtmans:

- Find Java anonymous classes when the next token after the name is
an open parenthesis.

From Gary Oberbrunner:

- Fix a code example in the man page.

From Tilo Prutz:

- Add support for the file names that Java 1.5 (and 1.6) generates for
nested anonymous inner classes, which are different from Java 1.4.

From Adam Simpkins:

- Allow worker threads to terminate gracefully when all jobs are
finished.

From Sohail Somani:

- Add LaTeX scanner support for finding dependencies specified with
the \usepackage{} directive.

0.97

From Steven Knight:

- Fix a bug that would make parallel builds stop in their tracks if
Nodes that depended on lists that contained some Nodes built together
caused the reference count to drop below 0 if the Nodes were visited
and commands finished in the wrong order.

- Make sure the DirEntryScanner doesn't choke if it's handed something
that's not a directory (Node.FS.Dir) Node.

0.96.96

NOTE: This is (Yet) a(nother) pre-release of 0.97 for testing purposes.

From Joe Bloggs:

- Man page fix: remove cut-and-paste sentence in NoCache() description.

From Dmitry Grigorenko and Gary Oberbrunner:

- Use the Intel C++ compiler, not $CC, to link C++ source.

From Helmut Grohne:

- Fix the man page example of propagating a user's external environment.

From Steven Knight:

- Back out (most of) the Windows registry installer patch, which
seems to not work on some versions of Windows.

- Don't treat Java ".class" attributes as defining an inner class.

- Fix detecting an erroneous Java anonymous class when the first
non-skipped token after a "new" keyword is a closing brace.

- Fix a regression when a CPPDEFINES list contains a tuple, the second
item of which (the option value) is a construction variable expansion
(e.g. $VALUE) and the value of the variable isn't a string.

- Improve the error message if an IOError (like trying to read a
directory as a file) occurs while deciding if a node is up-to-date.

- Fix "maximum recursion" / "unhashable type" errors in $CPPPATH
PathList expansion if a subsidiary expansion yields a stringable,
non-Node object.

- Generate API documentation from the docstrings (using epydoc).

- Fix use of --debug=presub with Actions for out-of-the-box Builders.

- Fix handling nested lists within $CPPPATH, $LIBPATH, etc.

- Fix a "builders_used" AttributeError that real-world Qt initialization
triggered in the refactored suffix handling for Builders.

- Make the reported --debug=time timings meaningful when used with -j.
Better documentation of what the times mean.

- User Guide updates: --random, AlwaysBuild(), --tree=,
--debug=findlibs, --debug=presub, --debug=stacktrace,
--taskmastertrace.

- Document (in both man page and User's Guide) that --implicit-cache
ignores changes in $CPPPATH, $LIBPATH, etc.

From Jean-Baptiste Lab:

- Remove hard-coded dependency on Python 2.2 from Debian packaging files.

From Jeff Mahovsky:

- Handle spaces in the build target name in Visual Studio project files.

From Rob Managan:

- Re-run LaTeX after BibTeX has been re-run in response to a changed
.bib file.

From Joel B. Mohler:

- Make additional TeX auxiliary files (.toc, .idx and .bbl files)
Precious so their removal doesn't affect whether the necessary
sections are included in output PDF or PostScript files.

From Gary Oberbrunner:

- Fix the ability to import modules in the site_scons directory from
a subdirectory.

From Adam Simpkins:

- Make sure parallel (-j) builds all targets even if they show up
multiple times in the child list (as a source and a dependency).

From Matthias Troffaes:

- Don't re-run TeX if the triggering strings (\makeindex, \bibliography
\tableofcontents) are commented out.

From Richard Viney:

- Fix use of custom include and lib paths with Visual Studio 8.

- Select the default .NET Framework SDK Dir based on the version of
Visual Studio being used.

0.96.95

From Anatoly Techtonik:

- Add the scons.org URL and a package description to the setup.py
arguments.

- Have the Windows installer add a registry entry for scons.bat in the
"App Paths" key, so scons.bat can be executed without adding the
directory to the %PATH%. (Python itself works this way.)

From Anonymous:

- Fix looking for default paths in Visual Studio 8.0 (and later).

- Add -lm to the list of default D libraries for linking.

From Matt Doar:

- Provide a more complete write-your-own-Scanner example in the man page.

From Ralf W. Grosse-Kunstleve:

- Contributed upstream Python change to our copied subprocess.py module
for more efficient standard input processing.

From Steven Knight:

- Fix the Node.FS.Base.rel_path() method when the two nodes are on
different drive letters. (This caused an infinite loop when
trying to write .sconsign files.)

- Fully support Scanners that use a dictionary to map file suffixes
to other scanners.

- Support delayed evaluation of the $SPAWN variable to allow selection
of a function via ${} string expansions.

- Add --srcdir as a synonym for -Y/--repository.

- Document limitations of include "file.h" with Repository().

- Fix use of a toolpath under the source directory of a BuildDir().

- Fix env.Install() with a file name portion that begins with ''.

- Fix ParseConfig()'s handling of multiple options in a string that's
replaced a *FLAGS construction variable.

- Have the C++ tools initialize common C compilation variables ($CCFLAGS,
$SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded.

From Leanid Nazdrynau:

- Fix detection of Java anonymous classes if a newline precedes the
opening brace.

From Gary Oberbrunner:

- Document use of ${} to execute arbitrary Python code.

- Add support for:
1) automatically adding a site_scons subdirectory (in the top-level
SConstruct directory) to sys.path (PYTHONPATH);
2) automatically importing site_scons/site_init.py;
3) automatically adding site_scons/site_tools to the toolpath.

From John Pye:

- Change ParseConfig() to preserve white space in arguments passed in
as a list.

From a smith:

- Fix adding explicitly-named Java inner class files (and any
other file names that may contain a '$') to Jar files.

From David Vitek:

- Add a NoCache() function to mark targets as unsuitable for propagating
to (or retrieving from) a CacheDir().

From Ben Webb:

- If the swig -noproxy option is used, it won't generate a .py file,
so don't emit it as a target that we expect to be built.

0.96.94

NOTE: This is a pre-release of 0.97 for testing purposes.

From Anonymous:

- Allow arbitrary white space after a SWIG %module declaration.

From Paul:

- When compiling resources under MinGW, make sure there's a space
between the --include-dir option and its argument.

From Jay Kint:

- Alleviate long command line issues on Windows by executing command
lines directly via os.spawnv() if the command line doesn't need
shell interpretation (has no pipes, redirection, etc.).

From Walter Franzini:

- Exclude additional Debian packaging files from the copyright check.

From Fawad Halim:

- Handle the conflict between the impending Python 2.6 'as' keyword
and our Tool/as.py module name.

From Steven Knight:

- Speed up the Node.FS.Dir.rel_path() method used to generate path names
that get put into the .sconsign* file(s).

- Optimize Node.FS.Base.get_suffix() by computing the suffix once, up
front, when we set the Node's name. (Duh...)

- Reduce the Memoizer's responsibilities to simply counting hits and
misses when the --debug=memoizer option is used, not to actually
handling the key calculation and memoization itself. This speeds
up some configurations significantly, and should cause no functional
differences.

- Add a new scons-time script with subcommands for generating
consistent timing output from SCons configurations, extracting
various information from those timings, and displaying them in
different formats.

- Reduce some unnecessary stat() calls from on-disk entry type checks.

- Fix SideEffect() when used with -j, which was badly broken in 0.96.93.

- Propagate TypeError exceptions when evaluating construction variable
expansions up the stack, so users can see what's going on.

- When disambiguating a Node.FS.Entry into a Dir or File, don't look
in the on-disk source directory until we've confirmed there's no
on-disk entry locally and there *is* one in the srcdir. This avoids
creating a phantom Node that can interfere with dependencies on
directory contents.

- Add an AllowSubstExceptions() function that gives the SConscript
files control over what exceptions cause a string to expand to ''
vs. terminating processing with an error.

- Allow the f90.py and f95.py Tool modules to compile earlier source
source files of earlier Fortran version.

- Fix storing signatures of files retrieved from CacheDir() so they're
correctly identified as up-to-date next invocation.

- Make sure lists of computed source suffixes cached by Builder objects
don't persist across changes to the list of source Builders (so the
addition of suffixes like .ui by the qt.py Tool module take effect).

- Enhance the bootstrap.py script to allow it to be used to execute
SCons more easily from a checked-out source tree.

From Ben Leslie:

- Fix post-Memoizer value caching misspellings in Node.FS._doLookup().

From Rob Managan, Dmitry Mikhin and Joel B. Mohler:

- Handle TeX/LaTeX files in subdirectories by changing directory
before invoking TeX/LaTeX.

- Scan LaTeX files for \bibliography lines.

- Support multiple file names in a "\bibliography{file1,file2}" string.

- Handle TeX warnings about undefined citations.

- Support re-running LaTeX if necessary due to a Table of Contents.

From Dmitry Mikhin:

- Return LaTeX if "Rerun to get citations correct" shows up on the next
line after the "Warning:" string.

From Gary Oberbrunner:

- Add include lines to fix portability issues in two tests.

- Eliminate some unnecessary os.path.normpath() calls.

- Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS
for options common to C and C++.

From Tom Parker:

- Have the error message print the missing file that Qt can't find.

From John Pye:

- Fix env.MergeFlags() appending to construction variable value of None.

From Steve Robbins:

- Fix the "sconsign" script when the .sconsign.dblite file is explicitly
specified on the command line (and not intuited from the old way of
calling it with just ".sconsign").

From Jose Pablo Ezequiel "Pupeno" Fernandez Silva:

- Give the 'lex' tool knowledge of the additional target files produced
by the flex "--header-file=" and "--tables-file=" options.

- Give the 'yacc' tool knowledge of the additional target files produced
by the bison "-g", "--defines=" and "--graph=" options.

- Generate intermediate files with Objective C file suffixes (.m) when
the lex and yacc source files have appropriate suffixes (.lm and .ym).

From Sohail Somain:

- Have the mslink.py Tool only look for a 'link' executable on Windows
systems.

From Vaclav Smilauer:

- Add support for a "srcdir" keyword argument when calling a Builder,
which will add a srcdir prefix to all non-relative string sources.

From Jonathan Ultis:

- Allow Options converters to take the construction environment as
an optional argument.

Page 9 of 14

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.