Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-11-04 | Add few testscript integration tests | Boris Kolpackov | 1 | -2/+34 | |
2016-11-04 | Add support of file redirects to testscript parser | Karen Arutyunov | 1 | -0/+2 | |
2016-11-04 | Support paths cleanup when test scope is left | Karen Arutyunov | 1 | -0/+4 | |
2016-11-04 | Fix printing no-newline here-doc and here-str | Karen Arutyunov | 2 | -19/+54 | |
2016-11-04 | Add support for setup/teardown commands | Boris Kolpackov | 4 | -1/+39 | |
2016-11-04 | Rename tests/test/script/ to tests/test/script/runner/ | Boris Kolpackov | 4 | -4/+11 | |
2016-11-04 | Change <! and >! syntaxt to <- and >- | Karen Arutyunov | 1 | -2/+2 | |
2016-11-04 | Add couple of testscript tests | Boris Kolpackov | 1 | -12/+16 | |
2016-11-04 | Add support for no-newline redirects in testscript | Boris Kolpackov | 1 | -0/+26 | |
The no-newline operators are '<:', '>:', '<<:', and '>>:'. | |||||
2016-11-04 | Implement concurrent_runner | Boris Kolpackov | 5 | -1/+133 | |
2016-11-04 | When assigning always ignore existing value type | Boris Kolpackov | 2 | -0/+5 | |
For example: x = [uint64] 1 x = a # Ok. | |||||
2016-11-04 | Cosmetic change | Boris Kolpackov | 1 | -1/+1 | |
2016-09-15 | Add io_error alias for std::ios_base::failure | Karen Arutyunov | 1 | -1/+1 | |
2016-08-30 | Add support for using '*' as target type in variable assignment | Boris Kolpackov | 1 | -0/+6 | |
So these three are equivalent: *: foo = 1 {*}: foo = 2 *{*}: foo = 3 | |||||
2016-08-26 | Add pkg-config support for import installed | Boris Kolpackov | 1 | -1/+3 | |
Redesign library importing/exporting while at it. | |||||
2016-08-23 | Update install.* variables in buildfiles | Boris Kolpackov | 2 | -2/+2 | |
2016-08-05 | Implement out-qualified target syntax for setting target-specific vars | Boris Kolpackov | 5 | -0/+11 | |
So now we can do: doc{INSTALL}@./: install = false Note that so far that's the only place where we support out-qualification. Grep for @@ OUT to see other places. | |||||
2016-07-28 | Adjust to new path implementation, use to support reversibility | Boris Kolpackov | 6 | -1/+80 | |
2016-07-22 | Change default var override from 'projects and subprojects' to amalgamation | Boris Kolpackov | 2 | -0/+11 | |
The 'projects and subprojects' semantics resulted in some counter-intuitive behavior. For example, in a project with tests/ as a subproject if one builds one of the tests directly with a non-global override (say C++ compiler), then the main project would be built without the overrides. I this light, overriding in the whole amalgamation seems like the right thing to do. The old behavior can still be obtained with scope qualification, for example: b ./:foo=bar | |||||
2016-07-21 | Add support for single line if-blocks | Boris Kolpackov | 2 | -2/+27 | |
So now we can do: if true print true else print false Instead having to do: if true { print true } else { print false } | |||||
2016-07-20 | Implement support for <, >, <=, >= in eval context | Boris Kolpackov | 4 | -0/+25 | |
Now can write: if ($build.version > 30000) | |||||
2016-07-16 | Add support for prepend/append in target type/pattern-specific vars | Boris Kolpackov | 4 | -0/+70 | |
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-12 | Use ./ instead of just . to denote current directory in buildfiles | Boris Kolpackov | 9 | -10/+10 | |
2016-06-18 | Port to MinGW | Karen Arutyunov | 17 | -20/+75 | |
2016-04-22 | Fix test | Boris Kolpackov | 2 | -2/+2 | |
2016-04-21 | Fix legacy stuff in tests | Boris Kolpackov | 13 | -39/+12 | |
2016-04-21 | Implement short-circuiting to group state | Boris Kolpackov | 1 | -3/+3 | |
This is necessary to get rid of bogus restarts in inject_prerequisites() where it think a group member was updated since its state changed from unknown to (group's) changed. | |||||
2016-04-18 | Add support for using value attributes in eval context | Boris Kolpackov | 4 | -3/+28 | |
For example: if ($x == [null]) Or: if ([uint64] 01 == [uint64] 1) | |||||
2016-04-12 | Add support for scope-qualification of overrides, scope visibility | Boris Kolpackov | 1 | -2/+42 | |
2016-04-06 | Test and fix override logic | Boris Kolpackov | 7 | -0/+366 | |
2016-04-05 | Add support for scope/target-qualified variable expansion | Boris Kolpackov | 3 | -0/+42 | |
For example: print $(dir/:var) print $(file{target}:var) print $(dir/file{target}:var) Note that if the scope/target does not (yet) exists, it will be created. | |||||
2016-04-04 | Implement value typing, null support via value attributes | Boris Kolpackov | 5 | -4/+104 | |
For example: v = [null] v = [string] abc v += ABC # abcABC | |||||
2016-04-02 | Implement variable typing (via attributes) | Boris Kolpackov | 3 | -0/+26 | |
Now we can do: [string] str = foo | |||||
2016-04-02 | Add attribute syntax infrastructure | Boris Kolpackov | 10 | -10/+31 | |
2016-03-31 | Set part of variable override implementation | Boris Kolpackov | 2 | -2/+2 | |
2016-03-28 | Add support for pair representation reversibility | Boris Kolpackov | 2 | -0/+16 | |
2016-03-28 | Adjust tests/quote now that we support escaping in double-quoted strings | Boris Kolpackov | 2 | -0/+5 | |
2016-03-28 | Change pairs semantics from separated to unseparated | Boris Kolpackov | 3 | -0/+70 | |
Before we use to recognize 'x @ y' as a pair. Now it has to be written unseparated, as 'x@y'. See tests/pairs for details on the new semantics. | |||||
2016-02-29 | Implement auxiliary dependency database (.d files), use in cxx.compile | Boris Kolpackov | 2 | -0/+174 | |
This is part of the "High Fidelity Build" work. | |||||
2016-01-24 | Fix bug in dynamically derived target types | Boris Kolpackov | 1 | -1/+1 | |
2016-01-21 | Add support for ==, != in eval context | Boris Kolpackov | 4 | -0/+66 | |
2016-01-09 | Update copyright year | Boris Kolpackov | 5 | -5/+5 | |
2015-12-14 | Add support for variable prepend operator: =+ | Boris Kolpackov | 3 | -0/+21 | |
2015-12-07 | Add support for specifying minimum required build2 version | Boris Kolpackov | 1 | -0/+31 | |
The syntax is: using build@0.1.0-a1 The idea is that we will later also use it for modules and 'build' is a special, the "build system itself" module. Also fix a problem with peeking and lexer mode switching. | |||||
2015-12-03 | Implement new potential directive keyword test | Boris Kolpackov | 5 | -9/+25 | |
Now we can use directive names as variables and targets type, for example: print = foo # variable print{foo}: # target | |||||
2015-12-03 | Implement if-else conditions | Boris Kolpackov | 3 | -0/+126 | |
if if! elif elif! else The expression should evaluate to true of false. The if! and elif! versions are provided as shortcuts to writing if (!...). See tests/if-else for examples. | |||||
2015-12-02 | Implement optional module loading | Boris Kolpackov | 1 | -0/+5 | |
The syntax is: using? cli Now each module use results in two bool variables: <module>.loaded and <module>.configured. Also implement variable visibility (the above two variables are limited to project). | |||||
2015-12-01 | Reimplement define as dynamic derivation rather than alias | Boris Kolpackov | 2 | -12/+26 | |
New syntax: define cli: file The rationale is we need to be able to assign the file extension (using type/pattern-specific variables). And if it is an alias, we will assign it to the original target type. Note that we could still support aliases if we need to. Will need to bring back the id member in target_type that would normally point to itself but for an alias would point to the origin. | |||||
2015-12-01 | Implement support for definition target type aliases | Boris Kolpackov | 1 | -0/+16 | |
For example: define cli=file Currently, the semantics is that of a real alias with only name differences that are used for display. See tests/define/buildfile for more use cases. | |||||
2015-11-30 | Implement target type/pattern-specific variables | Boris Kolpackov | 1 | -0/+33 | |
For example: cxx{*-options}: dist = true 1. Only single '*' wildcard is supported, matches 0 or more characters. 2. If target type is not specified, it defaults to any target. 3. Appending (+=) is not allowed. 4. The value is expanded immediately in the context of the scope. 5. The more specific pattern (i.e., with the shortest "stem") is preferred. If the stem has the same length, then the last defined (but not redefined) pattern is used. This will probably have to change to become an error. See tests/variable/type-pattern for more examples. |