Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2020-08-18 | Add ability to mark config.* variables as "unsaved" (always transient) | Boris Kolpackov | 5 | -19/+40 | |
2020-08-17 | Add mvfile() filesystem utility function | Boris Kolpackov | 3 | -19/+33 | |
2020-08-16 | Add support for post-configure and pre-disfigure hooks | Boris Kolpackov | 7 | -27/+131 | |
2020-08-16 | Add ability to initialize bootstrapped modules after loading root.build | Boris Kolpackov | 8 | -34/+64 | |
2020-08-16 | Redo modules map as vector | Boris Kolpackov | 3 | -43/+74 | |
2020-08-13 | Fix assertion failure in to_stream() for target key without extension | Karen Arutyunov | 1 | -2/+2 | |
Also fix a similar assertion. | |||||
2020-08-13 | Add few more run() overloads | Boris Kolpackov | 1 | -2/+17 | |
2020-08-12 | Adjust linker arguments for LTO parallelization | Matthew Krupcale | 1 | -0/+54 | |
GCC 10+ and Clang 4+ support controlling the number of LTO threads/jobs used during linking. Use the build2 scheduler to allocate up to the number of hardware threads to the GCC or Clang linker processes when -flto=auto or -flto=thin is specified, respectively. Otherwise, GCC or Clang will attempt to spawn the number of hardware threads detected for each linker process, which could result in up to n^2 linker threads on a CPU with n hardware threads. | |||||
2020-08-12 | Add iterator-based versions of find_option{,_prefix} | Matthew Krupcale | 2 | -3/+61 | |
This allows one to use all of the properties of iterators to manipulate the found option. | |||||
2020-08-12 | Add int64 and int64s variable types | Boris Kolpackov | 5 | -2/+115 | |
2020-08-11 | Add another variable_pool::insert() overload | Boris Kolpackov | 1 | -0/+9 | |
2020-08-10 | Fix bug scheduler::allocate/deallocate() | Boris Kolpackov | 1 | -2/+2 | |
2020-08-10 | Allow holes in group_view array | Boris Kolpackov | 4 | -13/+50 | |
2020-08-07 | Add ability to allocate additional active threads to current thread | Boris Kolpackov | 2 | -3/+102 | |
2020-08-06 | Double default task queue size | Boris Kolpackov | 1 | -1/+1 | |
Testing shows quite a lot of "full" conditions on low core count (e.g., 2) CPUs (such as Intel U-series). | |||||
2020-08-04 | Fix 'target.path() called out of scope' testscript error | Karen Arutyunov | 1 | -0/+7 | |
2020-08-03 | Fix buildscript diagnostics so diff output is always in unified format | Karen Arutyunov | 2 | -12/+48 | |
Also make sure diff refers program stdout as 'stdout' rather than '-' in the test rule diagnostics. | |||||
2020-07-23 | Escape quotes in .pc file values besides spaces and backslashes | Karen Arutyunov | 1 | -1/+1 | |
2020-07-21 | Change to version 0.14.0-a.0.z | Boris Kolpackov | 1 | -1/+1 | |
2020-07-18 | Release version 0.13.0v0.13.0 | Boris Kolpackov | 1 | -1/+1 | |
2020-07-18 | Work around Clang bug #45021 | Boris Kolpackov | 1 | -0/+10 | |
2020-07-18 | Add $regex.find_match() and $regex.find_search() functions | Karen Arutyunov | 1 | -0/+98 | |
2020-07-17 | Fix race in path/mtime assignment and file_rule::match() | Boris Kolpackov | 7 | -30/+43 | |
2020-07-17 | Add optimized derive_path_with_extension(), use in file_rule | Boris Kolpackov | 4 | -14/+42 | |
2020-07-17 | Use -fexternc-nounwind by default for Clang targeting MSVC | Boris Kolpackov | 1 | -5/+27 | |
This option implements the 'c' part in /EHsc and is not a mere optimization; see Clang bug #45021 for details. | |||||
2020-07-16 | Save original compiler path/mode in {c,cxx}.config.path/mode | Boris Kolpackov | 5 | -9/+21 | |
It turns out that when propagating {c,cxx}.config in tests we don't want to propagate any options (such as *.std) that have been folded into our project's mode. | |||||
2020-07-14 | Fix Clang warning | Boris Kolpackov | 2 | -0/+4 | |
2020-07-14 | Recognize `build2` as special module name in addition to `build` | Boris Kolpackov | 1 | -2/+2 | |
This is for consistency with version constraints in manifest. | |||||
2020-07-13 | Fix version check in using directive | Boris Kolpackov | 1 | -8/+9 | |
2020-07-13 | Reserve backtick (`) and bit-or (|) in eval context for future use | Boris Kolpackov | 5 | -4/+20 | |
Specifically, they are reserved for future support of arithmetic evaluation contexts and evaluation pipelines, respectively. | |||||
2020-07-13 | Add ability to extend rule interface in source-compatible manner | Boris Kolpackov | 11 | -22/+67 | |
2020-07-13 | Fold translated *.std options into compiler mode options | Boris Kolpackov | 8 | -55/+35 | |
This way they are accessible in ad hoc recipes. | |||||
2020-07-12 | Rename rule-adhoc-* to adhoc-rule-* | Boris Kolpackov | 5 | -15/+15 | |
2020-07-12 | Cache subprojects variable value in scope::root_extra | Boris Kolpackov | 7 | -55/+59 | |
2020-07-10 | Relax prerequisite filtering semantics of aliases for clean operation | Boris Kolpackov | 2 | -4/+7 | |
This is analogous to what has been done to test and install a couple of commits before. | |||||
2020-07-10 | Add support for project-local importation | Boris Kolpackov | 1 | -11/+19 | |
An import without a project name or with the same name as the importing project's is now treated as importation from the same project. For example, given the libhello project that exports the lib{hello} target, a buildfile for an executable in the same project instead of doing something like this: include ../libhello/ exe{hello}: ../libhello/lib{hello} Can now do this: import lib = libhello%lib{hello} Or: import lib = lib{hello} And then: exe{hello}: $lib Note that a target in project-local importation must still be exported in the project's export stub. In other words, project-local importation goes through the same mechanisms as normal import. | |||||
2020-07-10 | Tweak rule names | Boris Kolpackov | 3 | -3/+4 | |
2020-07-09 | Make sure update-for-{test,install} works for files out of any project | Boris Kolpackov | 2 | -2/+18 | |
2020-07-09 | Relax prerequisite filtering semantics of aliases in test and install rules | Boris Kolpackov | 3 | -5/+11 | |
2020-07-09 | Add support for ad hoc importation | Boris Kolpackov | 7 | -144/+415 | |
2020-07-09 | Get rid of no longer needed friend | Boris Kolpackov | 1 | -4/+0 | |
2020-07-08 | Fix bug in switch_scope() | Boris Kolpackov | 1 | -1/+1 | |
2020-07-07 | Make sure paths used to insert target are canonicalized | Boris Kolpackov | 1 | -3/+9 | |
2020-07-07 | Skip sources of executables in cc::install_rule | Boris Kolpackov | 2 | -9/+28 | |
Failed that, they may pull headers via an ad hoc group. | |||||
2020-07-06 | Adjust variable block applicability in dependency chains | Boris Kolpackov | 2 | -109/+124 | |
Before the block used to apply to the set of prerequisites before the last `:`. This turned out to be counterintuitive and not very useful since prerequisite-specific variables are a lot less common than target specific. And it doesn't fit with ad hoc recipes. The new rule is if the chain ends with `:`, then the block applies to the last set of prerequisites. Otherwise, it applies to the last set of targets. For example: ./: exe{test}: cxx{main} { test = true # Applies to the exe{test} target. } ./: exe{test}: libue{test}: { bin.whole = false # Applies to the libue{test} prerequisite. } This is actually consistent with both non-chain and non-block cases. Consider: exe{test}: cxx{main} { test = true } exe{test}: libue{test}: { bin.whole = false } exe{test}: libue{test}: bin.whole = false The only exception we now have in this overall approach of "if the dependency declaration ends with a colon, then what follows is for a prerequisite" is for the first semicolon: exe{test}: { test = true } exe{test}: test = true But that's probably intuitive enough since there cannot be a prerequisite without a target. | |||||
2020-07-03 | Cutoff amalgamation and subproject for simple projects | Boris Kolpackov | 2 | -43/+37 | |
2020-07-02 | Hopefully fix flaky permission denied in `in` module on Windows | Boris Kolpackov | 1 | -1/+9 | |
2020-07-02 | Optimize variable extraction in bootstrap_src() | Boris Kolpackov | 3 | -79/+69 | |
2020-07-02 | Cache project name in root_extra | Boris Kolpackov | 5 | -19/+55 | |
2020-07-01 | Add support for private installations | Boris Kolpackov | 1 | -42/+109 | |