summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
Commit message (Collapse)AuthorAgeFilesLines
* Optimize for most common case in Entry.disambiguate()Mathew Robinson2019-12-121-5/+5
| | | | This removes many unnecessary os.stat and related FS IO calls.
* Improve threading performance by sharing NodeInfo across threadsMathew Robinson2019-08-192-8/+7
|
* Add test and fix to regression in current 3.1.0 dropJason Kenny2019-07-301-0/+2
|
* Remove usage of DeciderNeedsNode which has been removed from --debug=explain ↵William Deegan2019-07-241-4/+1
| | | | code
* [ci skip] Fix spelling picked up by siderWilliam Deegan2019-07-141-1/+1
|
* Fix docstrings and comments for repo node changesWilliam Deegan2019-07-141-6/+8
|
* Clean up __slots__ specification to be list, remove some obsoleted codeWilliam Deegan2019-07-091-4/+2
|
* Fix __slots = ('single element') -> ('single element',) per finding by mwichmannWilliam Deegan2019-07-051-3/+3
|
* remove unnecessary DeciderNeedsNode exceptionWilliam Deegan2019-07-051-15/+0
|
* Fix _add_strings_to_dependency_map() perf degredationWilliam Deegan2019-06-281-2/+1
|
* Restore MD5-Timestamp performance by removing try/except from every call. ↵William Deegan2019-06-262-44/+75
| | | | Also some optimized logic for updating and using the dependency_map built as part of the decider. Fixed tests. Note Deciders now need a fourth argument 'repo_node' which is the repository node for the file if it's to be used. This is currently only used by md5-timestamp decider File.changed_timestamp_then_content()
* PY38: Resolve duplicate creation of 'work' subdir which yielded warnings. ↵William Deegan2019-05-301-1/+3
| | | | Also improve exception handling message in test.subdir()
* PEP8 fileWilliam Deegan2019-05-301-326/+374
|
* Merge pull request #3345 from mwichmann/py38warns4-testsWilliam Deegan2019-04-281-2/+2
|\ | | | | [wip] Py38warns4 tests
| * [PY 3.8] test fixes for file closings, rawstringsMats Wichmann2019-04-251-11/+11
| | | | | | | | | | | | | | On a linux host (missing some things that may be on the Travis CI setup), Py3.8a3 now shows 19 fails, 1048 pass, with 84 Warning: messages. Signed-off-by: Mats Wichmann <mats@linux.com>
| * [PY 3.8] file closes in tools and othersMats Wichmann2019-04-251-2/+2
| | | | | | | | Signed-off-by: Mats Wichmann <mats@linux.com>
* | Merge pull request #3360 from mwichmann/isnotWilliam Deegan2019-04-282-18/+18
|\ \ | | | | | | Some more lint-derived cleanups
| * | Some more lint-derived cleanupsMats Wichmann2019-04-272-18/+18
| |/ | | | | | | | | | | | | | | | | | | | | | | Consistently use "not is" and "not in", many instances used the form "not x is y" instead, which pylint objected to. A couple of bare except clauses got a qualifier. Files otherwise touched had trailing whitespace cleaned up as well. These are all things that sider would complain about if a change happened nearby, so this is pre-emptive. Signed-off-by: Mats Wichmann <mats@linux.com>
* | Merge branch 'master' into enhanced_debug_explainWilliam Deegan2019-04-271-0/+20
|\ \
| * \ Merge branch 'master' into ↵William Deegan2019-04-263-8/+8
| |\ \ | | |/ | | | | | | fix_mongo_bug_33111_multiple_targets_via_emitter_spurious_rebuilds
| * | Fix sider complainWilliam Deegan2019-04-261-1/+1
| | |
| * | Move target_peers to slots from attributesWilliam Deegan2019-04-021-1/+2
| | |
| * | Fix issue #2811 spurious rebuilds due to incorrect waiting_parents on nodes ↵William Deegan2019-04-021-0/+19
| | | | | | | | | | | | when builder has more than one target and source file generated
* | | switch to using zip_longest and handle py27 naming it izip_longest from ↵William Deegan2019-04-271-3/+8
| | | | | | | | | | | | ampping None to allow for explain to handel old and new dependency lists of different lengths
* | | Merge branch 'master' into enhanced_debug_explainWilliam Deegan2019-04-263-8/+8
|\ \ \ | | |/ | |/|
| * | Fixup some code triggering pylint errors.Mats Wichmann2019-04-213-8/+8
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Assorted fixups: exception types, redefined functions, globals, etc. Some old code removed to resolve issues (hashlib is always present on modern Pythons; no longer need the code for 2.5-and-earlier optparse). cmp is not a builtin function in Py3, drop one (unused) use; replace one. Fix another instance of renaming to SConsEnvironmentError. TODO flagged some instances of doing a raise without argument but not inside a try block - this is not considered legal, since raise with no argument is for re-raising an exception, but I don't know exactly how to resolve this in these cases. Also flagged an instance of raising an int instead of an exception class. We can either leave these as markers or update the PR. Signed-off-by: Mats Wichmann <mats@linux.com>
* | Enhanced --debug=explain output. Breaks out sources, depends, and implicit ↵William Deegan2019-04-021-4/+10
|/ | | | components to dependency list. Updated test. TODO: better formatting
* Clean up some file opens, regex stringsMats Wichmann2019-03-071-2/+2
| | | | | | | | | | | | | | | | | | Most recent Python (3.8 alpha) spews warnings aplenty about two subjects: unclosed files and strings which look like they have embedded escapes that Python does not recognize. The latter are usually regexes, and it provides a reminder that regular expressions should normally be specified as raw strings, so Python does not attempt to interpret them. Irritating is that even docstrings are flagged, it's not obvious what the right answer is for a docstring which contains, say, a Windows-style path with backslashes. This converts a bunch of opens that are not closed into context manager usage and regex patterns into raw strings. This eliminate about 4000 warnings spewed by Py3.8 (9200 remain). Signed-off-by: Mats Wichmann <mats@linux.com>
* Forgot to add current file csig when shortcutting calling changed_content(). ↵William Deegan2019-03-021-0/+5
| | | | Directly calling get_csig() when there is no previous build history
* Added logic to shortcut comparing prev_ni if there is no dependency map from ↵William Deegan2019-03-011-4/+24
| | | | previous build. This should speed up md5-timestamp builds for clean builds. Also added debug logic to dump and check aagainst previous implementation at top of FS.PY MD5_TIMESTAMP_DEBUG flag. currently set to False
* On windows first try with native file paths with \\ then swap path to ↵William Deegan2019-02-271-7/+26
| | | | normalized path string with / separators. On a fresh windows build the node string will have windows dirsep and not normalizd. This yielded broken builds for the Meta project'
* Change test for str(node1) is str(node2) to use ==. Expecting that the ↵William Deegan2018-11-121-1/+4
| | | | strings would have the same id() is not reasonable. Expecting their values are equal is.
* Resolve comments from @GaryO to clarify new code.William Deegan2018-11-121-2/+13
|
* Clarify and simplify logic in Node.get_binfo()William Deegan2018-11-121-4/+8
|
* Fix typosWilliam Deegan2018-11-121-1/+1
|
* Fix docstring on FileBuildInfo per comment from @dirkbaechleWilliam Deegan2018-11-121-3/+11
|
* fix whitespace issuesWilliam Deegan2018-11-121-3/+0
|
* switch from izip to zip. no izip in py3William Deegan2018-11-122-3/+3
|
* Revisit caching of filename -> csig map and invalidate when reasonableWilliam Deegan2018-11-122-38/+29
|
* Add docstringWilliam Deegan2018-11-121-0/+8
|
* Change logic to ensure we only build the dependency map once per target file.William Deegan2018-11-121-3/+14
|
* Moved logic to handle Timestamp-MD5 decider issues into File() node. One ↵William Deegan2018-11-122-152/+145
| | | | minor change in Node.Changed() it now has to handle the decider called indirectly throwing DeciderNeedsNode exception which has a property of decider it should call. Also had to update the explain logic to handle this exception.
* Check in before migrating logic from Node() -> File(). Since the ↵William Deegan2018-11-121-3/+17
| | | | | | Timestamp-MD5 decider issue we're trying to resolve only affects File() nodes. Additionally creating the map of file names -> csigs for info loaded from SConsign would only be used when using Timestamp-MD5
* move comment to docstring for LinkFunc()William Deegan2018-11-121-5/+7
|
* clarify docstring on decider functionWilliam Deegan2018-11-121-2/+2
|
* pull changes for this issue from WIP branch on mongo treeWilliam Deegan2018-11-121-23/+60
|
* Clear up some comments and convert comment to docstring where it makes senseWilliam Deegan2018-11-121-16/+24
|
* change exists_file() method to skip adding files AND sigs for files in the ↵William Deegan2018-11-121-33/+50
| | | | ignore set. previously was only skipping signitures which left the sconsign in an inconsistant state. (More file names than sigs)
* add method find_repo_file() which finds the file in it's known repositories. ↵William Deegan2018-11-121-3/+28
| | | | Minor reformat in rfile().
* Create test to verify fix for issue #2980William Deegan2018-11-122-4/+140
| | | | | | There are still possible errors due to timestamp-MD5 + cachedir + changed implicit or regular dependencies (but the same # of such as the previous build). These are not yet handled as the fix being used for changed number of such breaks a number of tests. This fix doe reduce the number of possible issues.