aboutsummaryrefslogtreecommitdiff
path: root/build2/variable
AgeCommit message (Collapse)AuthorFilesLines
2017-05-01Add hxx extension for headersKaren Arutyunov1-1328/+0
2017-04-19Fix typification bug in variable_cacheBoris Kolpackov1-2/+3
2017-03-07Specify config.test.output variableBoris Kolpackov1-8/+25
2017-03-02Implement parallel matchBoris Kolpackov1-2/+6
2017-02-16Add cp builtinKaren Arutyunov1-1/+0
2017-02-13Make GCC 4.9, VC14 happyBoris Kolpackov1-0/+12
2017-02-13Use variable_cache for target type/pattern-specific prepend/appendBoris Kolpackov1-49/+58
2017-02-13Add MT-safe variable_cache, use for variable overridesBoris Kolpackov1-12/+38
2017-02-13Some ground work for proper variable cache implementationBoris Kolpackov1-24/+27
2017-02-13Track variable value modificationsBoris Kolpackov1-2/+16
2017-02-13Cosmetic changesBoris Kolpackov1-5/+5
2017-02-13Pass const scope& where modification should not happenBoris Kolpackov1-1/+1
2017-02-13Redo variable pattern-typing to match in more specific orderBoris Kolpackov1-18/+50
2017-02-13Add load generation to global variable_map valuesBoris Kolpackov1-10/+28
2017-02-13Add global flag to variable_mapBoris Kolpackov1-4/+59
2017-02-13Add notion of load phase generationBoris Kolpackov1-4/+6
2017-02-13Implement pattern-based variable typing, tighten variable type updateBoris Kolpackov1-3/+66
2017-02-13Add notion of phase, enforceBoris Kolpackov1-1/+7
2017-02-13Add scheduling calls to operation's match()Boris Kolpackov1-16/+29
2017-02-13Add model mutex, make var_pool const by defaultBoris Kolpackov1-39/+53
2017-01-09Workaround libc++'s basic_string<line_char> crashKaren Arutyunov1-4/+7
2017-01-09Increase size of variable value::data_ to compile with libc++Karen Arutyunov1-4/+4
2017-01-06Store platform targets as typed target_tripletBoris Kolpackov1-4/+25
2017-01-05Update copyright yearBoris Kolpackov1-1/+1
2016-12-06Work around wrong static initialization order in VCBoris Kolpackov1-4/+18
2016-12-06Work around bogus VC14u3 warningBoris Kolpackov1-1/+1
2016-12-05Add comma, ternary, logical operators support in eval contextBoris Kolpackov1-0/+11
2016-11-30Add support for typed/untyped concatenated expansionBoris Kolpackov1-28/+41
2016-11-26Add support for VC15Karen Arutyunov1-1/+1
2016-11-23Implement value type propagation on expansionBoris Kolpackov1-0/+5
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-21Add support for derived-to-base function overload resolutionBoris Kolpackov1-4/+4
2016-11-18Add function machinery, implement path.normalize()Boris Kolpackov1-8/+31
Note that multi-argument functions are not yet "callable" since there is no support for value packs.
2016-11-18Make names and vector<name> different types, add typed value constructorBoris Kolpackov1-2/+11
2016-11-04Minor dependency cleanupBoris Kolpackov1-2/+3
2016-11-04Various design/implementation cleanupsBoris Kolpackov1-64/+102
2016-08-30Add support for target visibility, use for dist, test, installBoris Kolpackov1-2/+22
This means we can no longer write: install = false Now it should be: *: install = false
2016-08-23Reverse empty simple values as an empty names sequence rather than empty nameBoris Kolpackov1-0/+2
This way we get: config.import.foo = Rather than: config.import.foo = {}
2016-08-22Cache process_path, use fallback search directory for binutilsBoris Kolpackov1-0/+22
2016-08-12Implement support for C compilationBoris Kolpackov1-1/+5
We now have two new modules: cc (c-common) and c.
2016-07-28Fix dump not to type target type/pattern-specific prepend/appendBoris Kolpackov1-0/+8
2016-07-28Adjust to new path implementation, use to support reversibilityBoris Kolpackov1-10/+8
2016-07-21Save config vars in order specified rather than alphabeticallyBoris Kolpackov1-4/+5
This way we can group them semantically which results in easier to understand config.build output.
2016-07-20Switch to dynamic empty() implementation in variable valueBoris Kolpackov1-48/+73
The current model fell apart when we modified values directly.
2016-07-20Implement support for <, >, <=, >= in eval contextBoris Kolpackov1-2/+7
Now can write: if ($build.version > 30000)
2016-07-16Add support for prepend/append in target type/pattern-specific varsBoris Kolpackov1-11/+22
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-01Port to MSVCKaren Arutyunov1-1/+4
2016-06-28Work around static initialization order issueBoris Kolpackov1-0/+14
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-27Add config.bin.target var/hint, use to decide libso{} install modeBoris Kolpackov1-14/+22
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-06-26Add support for passing configuration hints via module init()Boris Kolpackov1-1/+2
2016-06-26Minor module interface cleanupsBoris Kolpackov1-0/+7