aboutsummaryrefslogtreecommitdiff
path: root/build2/algorithm.cxx
AgeCommit message (Collapse)AuthorFilesLines
2017-08-01Fix bug in ad hoc member traversalBoris Kolpackov1-1/+1
2017-08-01Reimplement pkg-config generation with more conservative approach for nowBoris Kolpackov1-2/+2
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-9/+14
2017-07-29Fix bug in execution algorithmsBoris Kolpackov1-19/+7
2017-07-28Implement support for linking whole archiveBoris Kolpackov1-26/+8
2017-07-28Fix bug in target_count logicBoris Kolpackov1-1/+7
2017-07-28Add support for custom data storage in target::preprequisite_targetsBoris Kolpackov1-7/+33
2017-07-27Implement displaying build progress (--progress|-p)Boris Kolpackov1-1/+3
2017-07-22Implement detection of ignorable changes (whitespaces, comments)Boris Kolpackov1-1/+1
2017-07-19Add support for explicit fsdir{} specificationBoris Kolpackov1-14/+32
2017-06-16Fix bug (forward-declared inline function)Boris Kolpackov1-0/+26
2017-06-14Next installment in C++ modules saga: module search, re-export supportBoris Kolpackov1-3/+11
2017-06-12Add workaround for Clang module import during preprocessingBoris Kolpackov1-6/+6
2017-06-08Implement rule chaining for modulesBoris Kolpackov1-2/+2
2017-06-01Implement module interface unit compilation for Clang and VCBoris Kolpackov1-0/+27
2017-05-13Fix VC15 warnings (/W3)Karen Arutyunov1-1/+1
2017-05-01Add hxx extension for headersKaren Arutyunov1-11/+11
2017-04-28Fix bug in target state/override logicBoris Kolpackov1-1/+1
2017-04-28Implement support for pre-processing version headers (or other files)Boris Kolpackov1-2/+5
Also implement the build system version check.
2017-04-27Pass target to prerequisite searchBoris Kolpackov1-7/+8
2017-04-01Fix bug in task state/count logicBoris Kolpackov1-7/+9
2017-04-01Redo handling of unhandled exceptions in async executionBoris Kolpackov1-18/+4
Here is the problem: noexcept looses the call stack. That is, unlike an unhandled exception, if noexcept is tripped, then you won't see the place where it was thrown. In this new implementation we now have noexcept only on the task thunk. And the task is called via a thunk only in case of async execution. This means that if we are executing serially (-j 1), then this will be an unhandled exception, not noexcept. Hopefully will be a bit easier to debug.
2017-03-24Fix diagnostics interleaving charactersKaren Arutyunov1-2/+4
2017-03-17Catch and dump unhandled exceptions in async task functionsBoris Kolpackov1-3/+17
The problem with relying on noexcept for this is that there is no stack.
2017-03-06Tweak target locking logicBoris Kolpackov1-13/+14
2017-03-04Call import_existing() from search_existing() now that we have itBoris Kolpackov1-7/+6
2017-03-04Fix match-only recipe override corner caseBoris Kolpackov1-53/+82
2017-03-03Refrain from working own queue when trying to lock targetBoris Kolpackov1-1/+8
This can easily lead to deadlock.
2017-03-03Fix cli distribution via groupBoris Kolpackov1-11/+13
2017-03-02Fix clean logicBoris Kolpackov1-10/+14
2017-03-02Implement parallel matchBoris Kolpackov1-275/+584
2017-02-14Modify library mate-information protocol not to use lib{} groupBoris Kolpackov1-5/+5
2017-02-13Implement parallel error propagation, keep_going modeBoris Kolpackov1-73/+135
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-13Get rid of count_postponedBoris Kolpackov1-57/+49
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 Kolpackov1-3/+3
2017-02-13Implement parallel operation executionBoris Kolpackov1-25/+165
2017-02-13Pass const target& to recipesBoris Kolpackov1-24/+30
2017-02-13Introduce target::task_countBoris Kolpackov1-36/+122
2017-02-13Implement target_set locking, including extension updateBoris Kolpackov1-2/+8
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-8/+13
2017-02-13Add notion of phase, enforceBoris Kolpackov1-0/+34
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-14/+16
2017-01-20Remove prerequisite caching in scopeBoris Kolpackov1-1/+1
We don't share them often and those that are shared (e.g., cxx{} in obja/objs{}) are lightweight (SOO).
2017-01-19Get rid of extension_poolBoris Kolpackov1-4/+4
2017-01-19Get rid of project_name_poolBoris Kolpackov1-1/+1
With small string optimizations this is most likely a hindrance rather that an optimization.
2017-01-18Ignore prerequisite mtimes that are not linker inputsBoris Kolpackov1-55/+16
This makes sure, for example, that we don't unnecessarily re-link an executable when its testscript prerequisite is changes.
2017-01-12Inject fsdir{} even for project rootsBoris Kolpackov1-4/+6
This takes care of subprojects, such as tests/.
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-17Don't try to test out-of-project prerequisitesBoris Kolpackov1-11/+5
2016-12-05Adapt to semantics change of path::normalize()Karen Arutyunov1-1/+1