Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2017-02-13 | Add MT-safe variable_cache, use for variable overrides | Boris Kolpackov | 1 | -0/+3 | |
2017-02-13 | Track variable value modifications | Boris Kolpackov | 1 | -13/+9 | |
2017-02-13 | Allow back overriding variables specified in buildfiles | Boris Kolpackov | 1 | -4/+10 | |
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-13 | Redo variable pattern-typing to match in more specific order | Boris Kolpackov | 1 | -12/+57 | |
2017-02-13 | Add load generation to global variable_map values | Boris Kolpackov | 1 | -20/+57 | |
2017-02-13 | Add global flag to variable_map | Boris Kolpackov | 1 | -1/+1 | |
2017-02-13 | Add notion of load phase generation | Boris Kolpackov | 1 | -3/+9 | |
2017-02-13 | Implement pattern-based variable typing, tighten variable type update | Boris Kolpackov | 1 | -54/+129 | |
2017-02-13 | Add notion of phase, enforce | Boris Kolpackov | 1 | -9/+38 | |
2017-02-13 | Add model mutex, make var_pool const by default | Boris Kolpackov | 1 | -3/+22 | |
2017-01-06 | Store platform targets as typed target_triplet | Boris Kolpackov | 1 | -0/+45 | |
2017-01-05 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-11-30 | Add support for typed/untyped concatenated expansion | Boris Kolpackov | 1 | -42/+26 | |
2016-11-23 | Implement value type propagation on expansion | Boris Kolpackov | 1 | -5/+68 | |
Currently, we only propagate types of sole, unquoted expansions (variable, function call, or eval context), similar to NULL. To untypify the value, simply quote it. | |||||
2016-11-18 | Add function machinery, implement path.normalize() | Boris Kolpackov | 1 | -32/+75 | |
Note that multi-argument functions are not yet "callable" since there is no support for value packs. | |||||
2016-11-04 | Minor dependency cleanup | Boris Kolpackov | 1 | -5/+0 | |
2016-11-04 | Various design/implementation cleanups | Boris Kolpackov | 1 | -8/+15 | |
2016-08-23 | Reverse empty simple values as an empty names sequence rather than empty name | Boris Kolpackov | 1 | -11/+16 | |
This way we get: config.import.foo = Rather than: config.import.foo = {} | |||||
2016-08-23 | Don't complete empty abs_dir_path | Boris Kolpackov | 1 | -3/+6 | |
The empty value is used as a special indicator | |||||
2016-08-22 | Cache process_path, use fallback search directory for binutils | Boris Kolpackov | 1 | -0/+98 | |
2016-07-30 | Actualize project root directories | Boris Kolpackov | 1 | -1/+1 | |
This solves the problem of changing path spelling on platforms with case- insensitive filesystems. For example, you may build a project in the current working directory without specifying any paths. This means the current working directory will be used as the project's root. On Windows this could be C:\x. Now you are building another project that imports the above project and you specify config.import.x variable pointing to the above build. But you are lazy to type capital C so you spell it as config.import.x=c:\x. What happens now is the value from config.import.x is used as the project root. And now it is a different spelling compared to your original build. This is not a problem when the build system itself is concerned -- it is smart enough to use case-insensitive comparison. However, we often use roots to derive other things, say, -I options that we pass to compilers. And these options are normally no longer treated as (case-insensitive) paths. If they are hashed and the result stored in depdb, then we end up with rebuilds that are triggered by changes from C:\ to c:\. | |||||
2016-07-28 | Adjust to new path implementation, use to support reversibility | Boris Kolpackov | 1 | -13/+11 | |
2016-07-20 | Switch to dynamic empty() implementation in variable value | Boris Kolpackov | 1 | -100/+69 | |
The current model fell apart when we modified values directly. | |||||
2016-07-20 | Implement support for <, >, <=, >= in eval context | Boris Kolpackov | 1 | -0/+62 | |
Now can write: if ($build.version > 30000) | |||||
2016-07-16 | Add support for prepend/append in target type/pattern-specific vars | Boris Kolpackov | 1 | -11/+18 | |
Semantically, these are similar to variable overrides and are essentially treated as "templates" that are applied on lookup to the "stem" value that is specific to the target type/name. For example: x = [string] a file{f*}: x =+ b sub/: { file{*}: x += c print $(file{foo}:x) # abc print $(file{bar}:x) # ac } | |||||
2016-07-01 | Port to MSVC | Karen Arutyunov | 1 | -8/+7 | |
2016-06-28 | Work around static initialization order issue | Boris Kolpackov | 1 | -7/+22 | |
value_traits<T>::value_type initialization is not constexpr in VC because of pointers to function template instantiations (which apparently are not constexpr). | |||||
2016-06-27 | Add config.bin.target var/hint, use to decide libso{} install mode | Boris Kolpackov | 1 | -1/+1 | |
Normally the user doesn't need to specify config.bin.target explicitly since the cxx module will hint it. We now also have the whole set of target's components: bin.target.{cpu,vendor,system,version,class} | |||||
2016-04-18 | Add support for using value attributes in eval context | Boris Kolpackov | 1 | -17/+41 | |
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1) | |||||
2016-04-11 | Redo config inheritance logic | Boris Kolpackov | 1 | -2/+2 | |
2016-04-11 | Add basic support for variable value inheritance | Boris Kolpackov | 1 | -3/+10 | |
Currently, only abs_dir_path inherits from dir_path. | |||||
2016-04-11 | New configuration logic, iteration 1 | Boris Kolpackov | 1 | -0/+2 | |
2016-04-09 | Tweak override logic WRT location of overridden value | Boris Kolpackov | 1 | -1/+2 | |
2016-04-09 | Add abs_dir_path type, auto-complete if initialized from names | Boris Kolpackov | 1 | -0/+28 | |
2016-04-06 | Fix NULL variable value assignment bug | Boris Kolpackov | 1 | -18/+28 | |
2016-04-04 | Implement value typing, null support via value attributes | Boris Kolpackov | 1 | -25/+23 | |
For example: v = [null] v = [string] abc v += ABC # abcABC | |||||
2016-04-01 | Get part of variable override implementation | Boris Kolpackov | 1 | -0/+4 | |
2016-03-31 | Clean up variable lookup interfaces | Boris Kolpackov | 1 | -9/+7 | |
2016-03-31 | Set part of variable override implementation | Boris Kolpackov | 1 | -0/+40 | |
2016-03-28 | Clean up variable usage | Boris Kolpackov | 1 | -0/+79 | |
2016-03-28 | New variable architecture | Boris Kolpackov | 1 | -242/+362 | |
2016-03-28 | Add support for pair representation reversibility | Boris Kolpackov | 1 | -27/+47 | |
2016-02-12 | <types>/<utility> scheme cleanup | Boris Kolpackov | 1 | -4/+1 | |
2016-01-09 | Update copyright year | Boris Kolpackov | 1 | -1/+1 | |
2016-01-05 | Rename build directory/namespace to build2 | Boris Kolpackov | 1 | -0/+452 | |