aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-02-13Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov9-134/+227
2017-02-13Add MT-safe variable_cache, use for variable overridesBoris Kolpackov9-69/+181
2017-02-13Add scheduler::shard_size() helper functionBoris Kolpackov2-46/+61
2017-02-13Some ground work for proper variable cache implementationBoris Kolpackov2-27/+37
2017-02-13Track variable value modificationsBoris Kolpackov6-19/+29
2017-02-13Allow back overriding variables specified in buildfilesBoris Kolpackov3-11/+22
It is still not clear whether this is the right thing to allow, conceptually, but with this disallowed it's hard to test this functionality. Perhaps we should have an attribute [overridable]. The problem is one will also have to set this variable to some value (e.g., [null]) which is not exactly the same as undefined (especially when testing).
2017-02-13Cosmetic changesBoris Kolpackov1-5/+5
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov26-201/+479
Keep going is the default but there is now the -s|--serial-stop that makes the driver run serially and stop at first error. Also fix some lockups, other minor improvements/features.
2017-02-13Redo scheduler task flag as atomic counterBoris Kolpackov3-53/+38
Makes for simpler code and also seems to perform better.
2017-02-13Various scheduler fixes, enhancements, and tuningBoris Kolpackov2-72/+117
While the task_ flags logic is hairy, it seems to work.
2017-02-13Make scheduler::async() indicate whether the task executed synchronouslyBoris Kolpackov2-5/+10
2017-02-13Get rid of count_postponedBoris Kolpackov5-70/+61
Terget execution is postponed with regards to the current thread only thus it doesn't seem right to make postponed a target state.
2017-02-13Do some naming cleanupsBoris Kolpackov7-13/+25
2017-02-13Tighten target constness furtherBoris Kolpackov10-53/+43
2017-02-13Implement parallel operation executionBoris Kolpackov16-144/+363
2017-02-13Use target:as<> instead of static_cast for target castingBoris Kolpackov12-60/+67
2017-02-13Tighten code that operates during both search/match and executeBoris Kolpackov9-100/+215
2017-02-13Pass const target& to recipesBoris Kolpackov37-356/+465
2017-02-13Use const scheduler task count where appropriateBoris Kolpackov2-9/+9
2017-02-13Introduce target::task_countBoris Kolpackov9-136/+192
2017-02-13Make scheduler::resume() call usable in serial executionBoris Kolpackov1-0/+5
2017-02-13Use less-than test for start count in schedulerBoris Kolpackov2-6/+6
2017-02-13Add support for passing alternative task start counts to schedulerBoris Kolpackov3-18/+45
2017-02-13Add support for waiting on other threads task counts in schedulerBoris Kolpackov2-13/+34
2017-02-13Implement target_set locking, including extension updateBoris Kolpackov14-78/+225
2017-02-13Redesign target_set interface in preparation for lockingBoris Kolpackov6-43/+44
2017-02-13Store extension in target map key rather than in targetBoris Kolpackov14-98/+110
This is in preparation for locking its modification/access.
2017-02-13Fallback to normal mutex if shared_mutex not availableBoris Kolpackov1-6/+17
As is the case on MacOS prior to 10.12.
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov41-219/+392
2017-02-13Fix scheduler::tune() to wait for active threads coming offBoris Kolpackov1-2/+9
2017-02-13Redo variable pattern-typing to match in more specific orderBoris Kolpackov4-41/+123
2017-02-13Add bin.vars moduleBoris Kolpackov4-83/+111
Use in cc to make sure hint variables are already registered.
2017-02-13Temporarily disable parallel search & match for multi-target buildsBoris Kolpackov1-0/+5
2017-02-13Fix bug in scheduler::tune()Boris Kolpackov1-1/+1
2017-02-13Add load generation to global variable_map valuesBoris Kolpackov7-43/+118
2017-02-13Add global flag to variable_mapBoris Kolpackov5-8/+67
2017-02-13Add notion of load phase generationBoris Kolpackov8-55/+86
2017-02-13Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov11-85/+246
2017-02-13Add notion of phase, enforceBoris Kolpackov23-97/+292
2017-02-13Add commentBoris Kolpackov1-3/+5
2017-02-13Add scheduling calls to operation's match()Boris Kolpackov14-187/+278
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov63-595/+851
2017-02-11Fix testscript parser not to strip leading blanks in here-docKaren Arutyunov2-7/+18
2017-02-11Add support for &dir/*[*][/] test path cleanup syntaxKaren Arutyunov3-45/+160
2017-02-10Fix save_regex()Karen Arutyunov3-35/+54
2017-02-03Fix runner output in verbose (-v, -V) modesKaren Arutyunov5-28/+46
2017-02-03Add sed builtinKaren Arutyunov10-149/+1045
2017-01-31Use HTTP for external submodules to help those behind firewallsBoris Kolpackov1-1/+1
2017-01-31Move builtin and runner tests to '$c ... && $b' patternKaren Arutyunov11-366/+180
2017-01-31Add support for test command pipe, expression and command-ifKaren Arutyunov9-210/+973