aboutsummaryrefslogtreecommitdiff
path: root/build2/variable
AgeCommit message (Collapse)AuthorFilesLines
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
2016-04-18Add support for using value attributes in eval contextBoris Kolpackov1-23/+29
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1)
2016-04-11Redo config inheritance logicBoris Kolpackov1-2/+9
2016-04-11Add basic support for variable value inheritanceBoris Kolpackov1-1/+9
Currently, only abs_dir_path inherits from dir_path.
2016-04-11New configuration logic, iteration 1Boris Kolpackov1-0/+3
2016-04-09Tweak override logic WRT location of overridden valueBoris Kolpackov1-3/+7
2016-04-09Add abs_dir_path type, auto-complete if initialized from namesBoris Kolpackov1-0/+17
2016-04-09Add overview of variable override implementationBoris Kolpackov1-5/+18
2016-04-06Add support for printing overrides in dump()Boris Kolpackov1-0/+14
2016-04-04Implement value typing, null support via value attributesBoris Kolpackov1-2/+8
For example: v = [null] v = [string] abc v += ABC # abcABC
2016-04-02Implement variable typing (via attributes)Boris Kolpackov1-1/+1
Now we can do: [string] str = foo
2016-04-01Get part of variable override implementationBoris Kolpackov1-1/+16
2016-03-31Clean up variable lookup interfacesBoris Kolpackov1-35/+25
2016-03-31Set part of variable override implementationBoris Kolpackov1-19/+21
2016-03-28Clean up variable usageBoris Kolpackov1-0/+40
2016-03-28Add variable cast from lookupBoris Kolpackov1-1/+7
2016-03-28New variable architectureBoris Kolpackov1-477/+275
2016-03-28Add support for pair representation reversibilityBoris Kolpackov1-5/+10
2016-03-28Enable @-delimited pairs mode everywhereBoris Kolpackov1-12/+8
2016-03-28Add few notes, comment cleanupsBoris Kolpackov1-3/+3
2016-03-16Cleanup variable typingBoris Kolpackov1-0/+7
2016-03-16Cleanup typed variable assignmentBoris Kolpackov1-7/+16
2016-02-12<types>/<utility> scheme cleanupBoris Kolpackov1-41/+37
2016-01-27Extract target from C++ compiler, set as cxx.host.{cpu,vendor,system,version}Boris Kolpackov1-2/+2
2016-01-09Update copyright yearBoris Kolpackov1-1/+1
2016-01-05Rename build directory/namespace to build2Boris Kolpackov1-0/+831