Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-05-19 | Update copyright year | Karen Arutyunov | 1 | -1/+1 | |
2018-02-03 | Get rid of action rule override semantics | Boris Kolpackov | 1 | -4/+11 | |
Instead we now have two more or less separate match states for outer and inner parts of an action. | |||||
2018-01-05 | Add support for variable aliases | Boris Kolpackov | 1 | -26/+81 | |
2017-12-13 | Implement info meta operation | Boris Kolpackov | 1 | -0/+4 | |
This meta operation can be used to print basic information (name, version, source/output roots, etc) for one or more projects. | |||||
2017-12-05 | Add support for first-access value typification during non-load phases | Boris Kolpackov | 1 | -25/+24 | |
2017-12-05 | Minor value typification API change | Boris Kolpackov | 1 | -1/+1 | |
2017-12-04 | Uninline variable_map::typify() | Boris Kolpackov | 1 | -1/+1 | |
2017-12-04 | Add cast_empty() for value casting | Boris Kolpackov | 1 | -0/+6 | |
2017-12-03 | Add few clarifying comments | Boris Kolpackov | 1 | -1/+1 | |
2017-12-03 | Allow typification of variables and values across load generations | Boris Kolpackov | 1 | -23/+3 | |
The original semantics turned out to be too restrictive. For example, the user may have specified the config.c variable on the command line that is only used by an imported project that is loaded in a subsequent generation. We are also relaxing it for values since conceptually the two feel the same. For a value the (hypothetical) example is a "common" variable set in a project root that is only queried in a subdirectory in a subsequent generation. | |||||
2017-11-09 | Add support for for-loop | Boris Kolpackov | 1 | -2/+14 | |
The semantics is similar to the C++11 range-based for: list = 1 2 3 for i: $list print $i Note that there is no scoping of any kind for the loop variable ('i' in the above example). See tests/loop/for.test for some examples/ideas. In the future the plan is to also support more general while-loop as well as break and continue. | |||||
2017-08-03 | Issue diagnostics instead of asserting on variable type/visibility change | Boris Kolpackov | 1 | -6/+8 | |
2017-07-31 | Experimental (and probably broken) pkg-config generation support | Boris Kolpackov | 1 | -1/+1 | |
2017-06-26 | Make path value type to be base for dir_path | Karen Arutyunov | 1 | -2/+7 | |
2017-05-01 | Add hxx extension for headers | Karen Arutyunov | 1 | -3/+3 | |
2017-03-07 | Specify config.test.output variable | Boris Kolpackov | 1 | -0/+78 | |
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 | |