Scons

Latest version: v4.7.0

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

Scan your dependencies

Page 8 of 13

0.98.4

From Benoit Belley:

- Fix calculation of signatures for Python function actions with
closures in Python versions before 2.5.

From David Cournapeau:

- Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS.

From Jonas Olsson:

- Fix a syntax error in the Intel C compiler support on Windows.

From Steven Knight:

- Change how we represent Python Value Nodes when printing and when
stored in .sconsign files (to avoid blowing out memory by storing
huge strings in .sconsign files after multiple runs using Configure
contexts cause the Value strings to be re-escaped each time).

- Fix a regression in not executing configuration checks after failure
of any configuration check that used the same compiler or other tool.

- Handle multiple destinations in Visual Studio 8 settings for the
analogues to the INCLUDE, LIBRARY and PATH variables.

From Greg Noel:

- Update man page text for VariantDir().

0.98.3

From Greg Noel:

- Fix use of $CXXFLAGS when building C++ shared object files.

From Steven Knight:

- Fix a regression when a Builder's source_scanner doesn't select
a more specific scanner for the suffix of a specified source file.

- Fix the Options object backwards compatibility so people can still
"import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules.

- Fix searching for implicit dependencies when an Entry Node shows up
in the search path list.

From Stefano:

- Fix expansion of $FORTRANMODDIR in the default Fortran command line(s)
when it's set to something like ${TARGET.dir}.

0.98.2

From Steven Knight:

- Fix a bug in Fortran suffix computation that would cause SCons to
run out of memory on Windows systems.

- Fix being able to specify --interactive mode command lines with
\ (backslash) path name separators on Windows.

From Gary Oberbrunner:

- Document Glob() in the User's Guide.

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.

Page 8 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.