summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Taskmaster.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix many epydoc warningsWilliam Deegan2017-09-011-22/+24
|
* py2/3 fix logic for reraising exceptions. A taskmaster test was failing ↵William Deegan2017-04-191-1/+7
| | | | because the passed exception value wasn't an exception and thus couldn't be reraised as is. Added logic to create an exception with the value and raise that
* py2/3 Fix re-raising stored exception. Previously we were dropping contents ↵William Deegan2017-04-191-1/+3
| | | | of Exception. Plus merge more complete removal of sccs and rcs source handling per deprecation/removal.
* py2/3 more work on getting exception handling to work properly on both py2/3William Deegan2017-04-041-1/+2
|
* fix py2/3 win32 use SCons.Util.UnicodeType to replace uWilliam Deegan2017-03-141-1/+1
|
* remove wb mode from creation of taskmaster trace file. Was breaking tests, ↵William Deegan2017-03-131-1/+1
| | | | and no reason to have such file be binary
* When iterating over dict.items(), we do not need a new list.Craig Rodrigues2017-03-121-1/+1
|
* Fix exception handling code to work with py3William Deegan2017-02-271-1/+1
|
* PEP-8 changesWilliam Deegan2017-02-261-2/+2
|
* python3 compatibility. Exceptions might have more arguments.mbyt2016-10-191-1/+1
| | | | | | Especially the UnicodeDecodeError takes 5 arguments. Without this change, are TypeError: function takes exactly 5 arguments is raised at this position.
* Futurize stage 2 2to3 fixes only.William Blevins2016-09-201-1/+1
|
* Fix re-raising exception so the syntax will work for both python3 and python2.Bill2016-05-141-2/+7
|
* fixes for print()'s for win32William Deegan2016-05-131-1/+5
|
* Commit resolved conflicting merge.Russel Winder2016-01-141-7/+12
|\
| * - fixed internal debugging of TaskmasterDirk Baechle2016-01-011-4/+4
| |
* | Post merge commit for safety. Building Fortran code works, but tests fail.Russel Winder2015-12-241-7/+7
|\ \ | |/
| * removed several pre-2.7 methods and imports, including some basic refactoringsDirk Baechle2015-12-101-6/+6
| |
| * - switching Node class and NodeInfo/Binfo to using slotsDirk Baechle2015-02-261-1/+1
| | | | | | | | - memoizer subsystem now uses decorators instead of the metaclass approach
* | Added six module as SCons.compat.six, for python3 port.Gary Oberbrunner2014-04-201-5/+5
| |
* | Merged with [default]Stefan Zimmermann2014-03-311-10/+27
|\ \ | |/
| * Added release_target_info() to File nodes, reduces memory consumption.Dirk Baechle2013-12-191-10/+27
| |
* | Made former 2to3 changes Python 2.7 compatible (or removed unneeded changes).Stefan Zimmermann2014-03-311-14/+15
| |
* | Manual python3 post-2to3 fixes from Neal BeckerGary Oberbrunner2013-09-221-7/+3
| |
* | Result of raw 2to3 run (2to3-2.7); checkpoint for python3 conversion.Gary Oberbrunner2013-09-221-22/+22
|/
* - fixed issue #2720, applied final patch (v3) by Alexey KlimkinDirk Baechle2012-01-101-12/+19
|
* New debug option --debug=prepare to watch targets being preparedGary Oberbrunner2011-03-011-0/+8
|
* Update deprecated features to the next life-cycle stageGreg Noel2010-05-211-2/+3
|
* Convert old-style classes in Taskmaster.py to new-style classes.Steven Knight2010-05-151-3/+3
|
* Fix regression tests (imports not happening as expected)Greg Noel2010-04-251-1/+1
|
* http://scons.tigris.org/issues/show_bug.cgi?id=2345Greg Noel2010-04-241-21/+6
| | | | | | | Comb out all code that supported earlier versions of Python. Most such code is in snippets of only a few lines and can be identified by having a Python version string in it. Such snippets add up; this combing pass probably got rid of over 500 lines of code.
* http://scons.tigris.org/issues/show_bug.cgi?id=2345Greg Noel2010-04-151-2/+1
| | | | | | | | | Fixes due to running the regression tests with the '-3' option to Python2.6, which causes the run-time to look for potential compatibility problems with Python 3.x. In some cases, all we can do is quiet the warning since we still support Python versions that can't use the newer idiom. In other cases, we fix the problem. This patch contains a mix of quieting and fixing, plus a little lint.
* http://scons.tigris.org/issues/show_bug.cgi?id=2345Greg Noel2010-04-151-1/+1
| | | | | | Apply the first part of the 'raise' fixer (the three-argument cases are not converted and will need to wait until native support of with_traceback() is available).
* Issue 2332: Convert from using StringIO.StringIO class to using theSteven Knight2010-04-071-13/+13
| | | | | forward-compatible io.StringIO class, with the addition of an "io" compatibility module for Python versions before 2.6.
* http://scons.tigris.org/issues/show_bug.cgi?id=2329Greg Noel2010-03-271-2/+2
| | | | | | | | | | | | | | | Applied a number of idiomatic changes. Uses of the 'sort()' method were converted into calls of 'sorted()' when possible and the sorted() expression was inserted into a subsequent statement whenever that made sense. The statement 'while 1:' was changed to 'while True:'. Names from the 'types' module (e.g., 'types.FooType') were converted to the equivalent build-in type (e.g., 'foo'). Comparisons between types were changed to use 'isinstance()'.
* Move 2.0 changes collected in branches/pending back to trunk for furtherGreg Noel2010-03-251-4/+4
| | | | | development. Note that this set of changes is NOT backward-compatible; the trunk no longer works with Python 1.5.2, 2.0, or 2.1.
* Merged revisions 4645,4647-4651,4654-4656 via svnmerge fromSteven Knight2010-02-051-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | http://scons.tigris.org/svn/scons/branches/pending ........ r4648 | managan | 2010-01-22 09:40:52 -0800 (Fri, 22 Jan 2010) | 9 lines Added dismbiguate calls on a targets side effects in the make_ready_all and make_ready_current routines of Taskmaster.py. This fixes Stefan Hepp's problem with latex. Directories to hold the side effect files were not created when using variantDir with duplicate=0 Modifying subdir_variantdir_include2.py to run scons with an explicit target to reveal this problem. ........ r4654 | stevenknight | 2010-01-27 07:41:01 -0800 (Wed, 27 Jan 2010) | 5 lines Issue 2534: fix Scanners' default ability to return Dir nodes by making the default node_class the real SCons.Node.FS.Base class, not SCons.Node.FS.Entry (which is now, and has been for some time, a subclass). ........
* Issue 2372: evaluate a Node's order-only prerequisites before the sourcesSteven Knight2009-03-111-1/+1
| | | | | and dependencies (so they can affect how the sources and dependencies are built).
* Move the set_state(EXECUTED) call associated with pulling thingsSteven Knight2009-02-221-1/+9
| | | | | | out of a CacheDir from CacheDir.py to Taskmaster.py. Ripple effects include adding a Node.FS.push_to_cache() method, so that logic can be invoked separately from the Node.built() method.
* Add emacs and vim editing settings to the bottom of *.py files.Steven Knight2009-02-091-0/+6
|
* Issue 1086: add support for generic batch build actions, andSteven Knight2009-01-091-7/+11
| | | | | | | | | | | | | | | | | | | | | | specific support for batched compilation for Microsoft Visual C/C++. Merged revisions 3819-3851,3854-3869,3871-3877,3880 via svnmerge from http://scons.tigris.org/svn/scons/branches/sgk_batch ........ r3820 | stevenknight | 2008-12-09 23:59:14 -0800 (Tue, 09 Dec 2008) | 6 lines Issue 1086: Batch compilation support: * $MSVC_BATCH to control Visual C/C++ batch compilation. * New $CHANGED_SOURCES, $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS construction variables. * New Action(batch_key=, targets=) keyword arguments. ........ r3880 | stevenknight | 2009-01-07 20:50:41 -0800 (Wed, 07 Jan 2009) | 3 lines Use UniqueList objects to collect the all_children(), all_prerequisites() and all_sources() lists instead of calling uniquer_hashables() by hand. ........
* Issue 2231: Add a --warn=future-deprecated option, along withSteven Knight2008-12-111-0/+4
| | | | | | | FutureDeprecatedWarning and MandatoryDeprecatedWarning subclasses. Use these to future-deprecate the Taskmaster.Task class, which we intend to turn into an abstract base class by requiring subclasses to implement the .needs_execute() method.
* Create Taskmaster.{Always,OutOfDate}Task subclasses of Taskmaster.TaskSteven Knight2008-12-081-9/+32
| | | | to hold different implementations of the .needs_execute() method.
* Issue 2265: Suppress messages about spurious dependency cycles.Steven Knight2008-12-071-19/+35
| | | | (Jason Kenny)
* Issue 2116: Eliminate some spurious dependency cycles by being moreSteven Knight2008-12-061-30/+139
| | | | | aggressive about pruning pending children from the Taskmaster walk. (Benoit Belley)
* Issue 2265: Add additional --taskmastertrace= messages in the Task class.Steven Knight2008-12-051-15/+75
| | | | Refactor messages in the Taskmaster class to use new, common methods.
* Applied Benoit Belley's patch in ticket 1957 improve the robustness ofGary Oberbrunner2008-10-291-3/+5
| | | | | | | | | | | | GetBuildFailures(). New function convert_to_buildError, and use it in several places so all build failures now go through it and are returned as BuildError exceptions. Had a small effect on output formatting in many tests but no significant change to behavior. I reworked the patch a little to keep SCons exit status values the same as before; this patch could make it simpler to change them in some cases, e.g. exit with the errno of the failed action if desired. One nice side effect of this patch is that more scons errors print the node that caused the error now.
* Better error when taskmaster gets an exception while scanning children (show ↵Gary Oberbrunner2008-09-291-2/+2
| | | | actual exception string).
* Evaluate compat module transparently when SCons is instantiatedGreg Noel2008-09-111-2/+0
|
* Merged revisions 2928-2932,2934-2946 via svnmerge fromSteven Knight2008-05-181-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://scons.tigris.org/svn/scons/branches/core ........ r2932 | garyo | 2008-04-30 09:14:38 -0700 (Wed, 30 Apr 2008) | 1 line Add doc for site_scons dir and related options. Closes issue #1996. ........ r2934 | stevenknight | 2008-04-30 22:05:38 -0700 (Wed, 30 Apr 2008) | 3 lines Issue 2039: Fix a syntax error in Intel C compiler support on Windows. (Jonas Olsson) ........ r2935 | belley | 2008-05-01 06:59:21 -0700 (Thu, 01 May 2008) | 10 lines test/KeyboardInterrupt.py no longer hangs under Cygwin. There seems to be a bug on Cygwin where the compiler process hangs after sending the SIGINT signal to the process group. It is probably a bug in cygwin1.dll, or maybe in the Python 'C' code or the Python subprocess module. We therefore do not use 'killpg' on Cygwin. Benoit ........ r2936 | belley | 2008-05-01 07:10:23 -0700 (Thu, 01 May 2008) | 12 lines cell_contents not defined in python < 2.5. [Issue 2035] Some versions of Python supports lexical scoping of local variables (aka closures) but not the cell_contents attribute that would allow the FunctionAction signature that take the content of these closure cells into account. The access to the cell_contents attribute is now protected with a try/except AttributeError so that at least the other parts of the function signature are properly computed. Benoit ........ r2937 | stevenknight | 2008-05-01 12:08:25 -0700 (Thu, 01 May 2008) | 3 lines When running tests, allow the user to set the $SCONSIGN variable to pick a specific sconsign script to execute. ........ r2938 | stevenknight | 2008-05-02 19:13:14 -0700 (Fri, 02 May 2008) | 2 lines Set svn:ignore to '*.py[co]'. ........ r2939 | stevenknight | 2008-05-08 21:07:18 -0700 (Thu, 08 May 2008) | 4 lines Issue 2033: Fix excessive memory use when a Python Value node's representation is stored in a .sconsign file and then re-stored after being interpreted with escaped backslashes and quotes. ........ r2940 | cournape | 2008-05-16 03:56:49 -0700 (Fri, 16 May 2008) | 1 line Fix issue 2054. ........ r2941 | stevenknight | 2008-05-16 12:02:45 -0700 (Fri, 16 May 2008) | 8 lines Issue 2045: After a Node has failed its build and we're propagating the failure to other Nodes on the candidate list, don't marke candidate Nodes as FAILED if they've already been visited and been determined to be up-to-date. This avoids problems with Configure tests not running because failure of an earlier Configure tests caused (e.g.) /usr/bin/g++ to get marked as FAILED, making SCons think it doesn't need to bother trying to rebuild anything that will use it... ........ r2942 | stevenknight | 2008-05-16 12:10:14 -0700 (Fri, 16 May 2008) | 8 lines Improve the regular expressions used by the test infrastructure to examine SCons output to decide if a list of targets are considered up-to-date or not. The new code uses the re.escape() function instead of hand-escaping '.' and '\n'. This required a little restructuring in the not_up_to_date() method to escape the characters within the arguments themselves, but not the surrounding characters we use to construct the regex that makes sure those strings *don't* exist in the output. ........ r2943 | stevenknight | 2008-05-16 14:04:23 -0700 (Fri, 16 May 2008) | 3 lines Issue 2049: Handle multiple pipe-separated values in Visual Studio for INCLUDE, LIB and PATH. Still only uses Win32, not any other values. ........ r2944 | stevenknight | 2008-05-16 18:36:27 -0700 (Fri, 16 May 2008) | 2 lines Record changes by David Cournapeau and Benoit Belley. ........ r2945 | stevenknight | 2008-05-17 07:13:46 -0700 (Sat, 17 May 2008) | 3 lines Pass in dc as a keyword argument to _smartLink for older Python versions without nested scopes. ........ r2946 | stevenknight | 2008-05-17 07:14:01 -0700 (Sat, 17 May 2008) | 3 lines Expect a warning about shadowing global variables on Python 2.1. (This code can go away after we release 1.0.) ........
* Merged revisions 2898-2901,2903-2927 via svnmerge fromSteven Knight2008-04-301-51/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://scons.tigris.org/svn/scons/branches/core ........ r2903 | stevenknight | 2008-04-22 08:23:52 -0700 (Tue, 22 Apr 2008) | 3 lines Issue 2019: don't blow up when a "dictionary" source_scanner doesn't have a more-specific scanner entry for a specified source file's suffix. ........ r2904 | stevenknight | 2008-04-23 11:13:19 -0700 (Wed, 23 Apr 2008) | 3 lines Fix regression in use of $CXXFLAGS by the default $SHCXXFLAGS setting. (Greg Noel) ........ r2905 | stevenknight | 2008-04-23 11:23:12 -0700 (Wed, 23 Apr 2008) | 3 lines Update the test/CXX/SHCXXFLAGS.py with some more modern idioms copied from test/CXX/CXXFLAGS.py. ........ r2921 | belley | 2008-04-28 08:52:13 -0700 (Mon, 28 Apr 2008) | 98 lines Candidate list must be flushed when stopping the taskmaster. ============================================================ The taskmaster's candidate list must be flushed when the taskmaster is stopped, either because of a build error or a keyboard interrupt. This involves failing each candidates along with their waiting parents. This is necessary because the waiting parents might be in the pending_children set() that is used by the taskmaster to determine if cycles exist in the dependency graph. Failure to do so leads to confusing error messages such as: scons: *** Found dependency cycle(s): Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/DynamicProperty.h (<SCons.Node.FS.File instance at 0x95d230c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/NotSupported.h (<SCons.Node.FS.File instance at 0x960634c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/InvalidRequest.h (<SCons.Node.FS.File instance at 0x95d2bac>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/RequestCanceled.h (<SCons.Node.FS.File instance at 0x960648c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/InvalidType.h (<SCons.Node.FS.File instance at 0x95d2cec>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Core/InvalidProperty.h (<SCons.Node.FS.File instance at 0x9606d2c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/SecurityError.h (<SCons.Node.FS.File instance at 0x96065cc>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Core/PropertyCollector.h (<SCons.Node.FS.File instance at 0x9606e6c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/Fault/InvalidArgument.h (<SCons.Node.FS.File instance at 0x95d2a6c>) Internal Error: no cycle found for node /bld/vmkernel-main/scons/build/vmodl/obj/generic/Vmodl/Vmomi/DynamicData.h (<SCons.Node.FS.File instance at 0x95d21cc>) Changes made: Job.py: ------ o Implemented an InterruptState object that allows the sharing of the interrupt state between the Jobs, the Serial/Parallel and the Worker thread object. This allows for somewhat faster interruption when Ctrl-C is pressed because the Worker thread will not start any new task, i.e. the ones siting in the request queue. Taskmaster.py: -------------- o Moved the code contained the function Task.fail_continue() to the function Taskmaster.will_not_build(). This function perform the clean-up for nodes that will never be built. This includes failing these nodes along with their waiting parents and removing them from the list of pending children. o Improved the taskmaster tracing so that the pending children ref counts of nodes is also printed. o When stopping the taskmaster, no_next_candidate() now calls will_not_build() repetitively to make sure that all candidate nodes that will never be build are properly cleaned-up. test/Parallel/multiple-parents.py --------------------------------- Improved the test to also exercise the following functionality: o Nodes with multiple targets (not just aliases as it was before). o SideEffect() o Interrupting the build. Submitted against changeset 2920. All tests pass with both Python 2.5.1 and 1.5.2 Benoit ........ r2922 | stevenknight | 2008-04-28 11:50:10 -0700 (Mon, 28 Apr 2008) | 26 lines Issue 2024: http://scons.tigris.org/issues/show_bug.cgi?id=2024 Some public packages were importing specific SCons.Options.*Option submodules directly, instead of using the SCons.Options package itself (which actually exposed all the SCons.Options.*Option variable names directly, but what they hey). Our scripts didn't test for direct importing of the submodules, so this broke when I implemented backwards comptability with a SCons/Options.py module, instead of a full SCons/Options/*.py package. This restores the SCons/Options/*.py package files with stub modules that provide backwards compatibility (by referring to the new SCons.Variables functions and classes) and allow for importing all of The test/Deprecated/Options/*Option.py scripts have had specific submodule imports added. To make sure this corresponding "feature" continues to work in the future, I'll be following this with another checkin that adds submodule imports for the SCons.Variables.*Variable modules. I ran this with the SCons/Options.py file in place, and also with a compiled SCons/Options.pyc file in place, to try to make sure it works regardless. We've seen issues on Debian where their packaging doesn't clean up old *.pyc files when a Python *.py module is removed. It looks like this should work regardless of whether the Options.pyc file is there or not. ........ r2923 | stevenknight | 2008-04-28 11:52:52 -0700 (Mon, 28 Apr 2008) | 3 lines Update the test/Variables/*Variable.py scripts to verify that importing SCons.Variables.*Variable submodules continues to work in the future. ........ r2924 | belley | 2008-04-28 14:06:54 -0700 (Mon, 28 Apr 2008) | 6 lines Fixed a test that my morning change broke. The taskmaster tracing now includes the pending children ref count. Benoit ........ r2925 | stevenknight | 2008-04-28 18:00:25 -0700 (Mon, 28 Apr 2008) | 4 lines Issue 2028: Make sure already-existing Entry Nodes that we find are converted to Dir Nodes when searching a *PATH list for implicit dependencies. ........ r2926 | stevenknight | 2008-04-29 08:11:40 -0700 (Tue, 29 Apr 2008) | 3 lines Issue 2034: Fix $FORTRANMODDIR values like ${TARGET.dir} in the default $_FORTANMODFLAG expansion. (Stefano) ........ r2927 | stevenknight | 2008-04-29 11:34:02 -0700 (Tue, 29 Apr 2008) | 3 lines Restore the SCons.Options package (maintains backwards compatibility of importing submodules) to setup.py. ........