Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2017-04-01 | Fix bug in task state/count logic | Boris Kolpackov | 1 | -7/+9 | |
2017-04-01 | Redo handling of unhandled exceptions in async execution | Boris Kolpackov | 1 | -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-24 | Fix diagnostics interleaving characters | Karen Arutyunov | 1 | -2/+4 | |
2017-03-17 | Catch and dump unhandled exceptions in async task functions | Boris Kolpackov | 1 | -3/+17 | |
The problem with relying on noexcept for this is that there is no stack. | |||||
2017-03-06 | Tweak target locking logic | Boris Kolpackov | 1 | -13/+14 | |
2017-03-04 | Call import_existing() from search_existing() now that we have it | Boris Kolpackov | 1 | -7/+6 | |
2017-03-04 | Fix match-only recipe override corner case | Boris Kolpackov | 1 | -53/+82 | |
2017-03-03 | Refrain from working own queue when trying to lock target | Boris Kolpackov | 1 | -1/+8 | |
This can easily lead to deadlock. | |||||
2017-03-03 | Fix cli distribution via group | Boris Kolpackov | 1 | -11/+13 | |
2017-03-02 | Fix clean logic | Boris Kolpackov | 1 | -10/+14 | |
2017-03-02 | Implement parallel match | Boris Kolpackov | 1 | -275/+584 | |
2017-02-14 | Modify library mate-information protocol not to use lib{} group | Boris Kolpackov | 1 | -5/+5 | |
2017-02-13 | Implement parallel error propagation, keep_going mode | Boris Kolpackov | 1 | -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-13 | Get rid of count_postponed | Boris Kolpackov | 1 | -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-13 | Do some naming cleanups | Boris Kolpackov | 1 | -3/+3 | |
2017-02-13 | Implement parallel operation execution | Boris Kolpackov | 1 | -25/+165 | |
2017-02-13 | Pass const target& to recipes | Boris Kolpackov | 1 | -24/+30 | |
2017-02-13 | Introduce target::task_count | Boris Kolpackov | 1 | -36/+122 | |
2017-02-13 | Implement target_set locking, including extension update | Boris Kolpackov | 1 | -2/+8 | |
2017-02-13 | Pass const scope& where modification should not happen | Boris Kolpackov | 1 | -8/+13 | |
2017-02-13 | Add notion of phase, enforce | Boris Kolpackov | 1 | -0/+34 | |
2017-02-13 | Add model mutex, make var_pool const by default | Boris Kolpackov | 1 | -14/+16 | |
2017-01-20 | Remove prerequisite caching in scope | Boris Kolpackov | 1 | -1/+1 | |
We don't share them often and those that are shared (e.g., cxx{} in obja/objs{}) are lightweight (SOO). | |||||
2017-01-19 | Get rid of extension_pool | Boris Kolpackov | 1 | -4/+4 | |
2017-01-19 | Get rid of project_name_pool | Boris Kolpackov | 1 | -1/+1 | |
With small string optimizations this is most likely a hindrance rather that an optimization. | |||||
2017-01-18 | Ignore prerequisite mtimes that are not linker inputs | Boris Kolpackov | 1 | -55/+16 | |
This makes sure, for example, that we don't unnecessarily re-link an executable when its testscript prerequisite is changes. | |||||
2017-01-12 | Inject fsdir{} even for project roots | Boris Kolpackov | 1 | -4/+6 | |
This takes care of subprojects, such as tests/. | |||||
2017-01-05 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-12-17 | Don't try to test out-of-project prerequisites | Boris Kolpackov | 1 | -11/+5 | |
2016-12-05 | Adapt to semantics change of path::normalize() | Karen Arutyunov | 1 | -1/+1 | |
2016-11-30 | Add support for typed/untyped concatenated expansion | Boris Kolpackov | 1 | -1/+1 | |
2016-11-22 | Use diagnostics facility from libbutl | Boris Kolpackov | 1 | -1/+1 | |
2016-11-04 | Don't print "while updating ..." in quiet mode | Boris Kolpackov | 1 | -1/+3 | |
2016-11-04 | Cleanup match_result mess | Boris Kolpackov | 1 | -4/+4 | |
2016-11-04 | Add support for skipping rule in delegate_match() | Boris Kolpackov | 1 | -3/+6 | |
2016-08-31 | Compile first source file, not last | Boris Kolpackov | 1 | -1/+1 | |
Some source files may include other files of the same type which can get injected at the end. | |||||
2016-08-29 | Implement initial support for library versioning | Boris Kolpackov | 1 | -39/+63 | |
Currently we only support platform-independent versions that get appended to the library name. The magic incantation is this: lib{foo}: bin.lib.version = @-1.2 This will produce libfoo-1.2.so, libfoo-1.2.dll, etc. In the future we will support things like this: lib{foo}: bin.lib.version = linux@1.2.3 freebsd@1.2 windows@1.2 | |||||
2016-08-12 | Implement support for C compilation | Boris Kolpackov | 1 | -0/+48 | |
We now have two new modules: cc (c-common) and c. | |||||
2016-08-09 | Fix bug in inner/outer operation handling | Boris Kolpackov | 1 | -1/+3 | |
2016-08-02 | Optimize out path::normalize() calls | Boris Kolpackov | 1 | -1/+2 | |
2016-07-19 | Add support for building DLLs with VC | Boris Kolpackov | 1 | -6/+6 | |
2016-07-08 | Add dependency on fsdir{} in alias rules | Boris Kolpackov | 1 | -14/+16 | |
This makes sure that a directory with only dir{} target gets cleaned up. | |||||
2016-07-08 | Move filesystem-related functions from context to new filesystem files | Boris Kolpackov | 1 | -1/+2 | |
2016-07-08 | Implement limited rpath emulation for Windows | Boris Kolpackov | 1 | -14/+53 | |
2016-06-26 | Add notion of ad hoc group, use to handle DLL/import library | Boris Kolpackov | 1 | -2/+21 | |
2016-06-17 | Initial take on DLL support for MinGW toolchain | Boris Kolpackov | 1 | -34/+55 | |
2016-04-21 | Move target state reset back to recipe() | Boris Kolpackov | 1 | -1/+2 | |
Doing it in target::reset() (which is called by match()) didn't play well with delegated recipes. | |||||
2016-04-21 | Use hash map/set for targets/prerequisites to resolve key change issue | Boris Kolpackov | 1 | -2/+2 | |
2016-04-19 | Redesign src/out scoping | Boris Kolpackov | 1 | -2/+7 | |
We no longer enter paths from the src tree into scope map. Instead, targets from the src tree now include their out tree directory (in essence their "configuration"). This is then used to find a target's scope. See the comment in class target for details. The result of this change is that we can now again build multiple configurations (out trees) for same project at once. | |||||
2016-03-09 | Force creation of output directory before opening depdb | Boris Kolpackov | 1 | -7/+8 | |