Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2018-09-04 | Rename .test/test{} to .testscript/testscript{} | Boris Kolpackov | 4 | -4/+4 | |
2018-05-24 | Remove target/scope irregularity workarounds | Boris Kolpackov | 1 | -2/+1 | |
2018-05-19 | Update copyright year | Karen Arutyunov | 8 | -8/+8 | |
2018-05-19 | Get rid of doc{version} and types for testscript and manifest in buildfiles | Karen Arutyunov | 4 | -4/+4 | |
2018-05-03 | Regularize directory target/scope-specific variable assignment syntax | Boris Kolpackov | 5 | -3/+128 | |
2017-12-16 | Redo string/stream representation of dir{} name/target | Boris Kolpackov | 1 | -8/+8 | |
Now instead of: dir{foo/bar/} We get: foo/dir{bar/} Which feels more consistent with how we print other names/targets. That is, "directory bar/ in directory foo/" similar how foo/exe{bar} is "executable bar in directory foo/". | |||||
2017-11-20 | Add test for prerequisite-specific variables | Boris Kolpackov | 2 | -0/+76 | |
2017-03-14 | Implement implied buildfile support | Boris Kolpackov | 1 | -5/+0 | |
In essence, if the buildfile is: ./: */ Then it can be omitted entirely (provided there is at least one subdirectory). | |||||
2017-02-13 | Use variable_cache for target type/pattern-specific prepend/append | Boris Kolpackov | 3 | -0/+88 | |
2016-12-01 | Move old tests to old-tests/ | Boris Kolpackov | 35 | -918/+0 | |
2016-12-01 | Allow implicit (lexical) typed-to-typed conversion | Boris Kolpackov | 1 | -3/+3 | |
2016-11-23 | Implement value type propagation on expansion | Boris Kolpackov | 1 | -3/+3 | |
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-04 | When assigning always ignore existing value type | Boris Kolpackov | 2 | -0/+5 | |
For example: x = [uint64] 1 x = a # Ok. | |||||
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-07-28 | Adjust to new path implementation, use to support reversibility | Boris Kolpackov | 5 | -0/+77 | |
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-16 | Add support for prepend/append in target type/pattern-specific vars | Boris Kolpackov | 3 | -0/+69 | |
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-06-18 | Port to MinGW | Karen Arutyunov | 6 | -9/+31 | |
2016-04-21 | Fix legacy stuff in tests | Boris Kolpackov | 1 | -1/+0 | |
2016-04-18 | Add support for using value attributes in eval context | Boris Kolpackov | 2 | -3/+3 | |
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-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 | |
2015-12-14 | Add support for variable prepend operator: =+ | Boris Kolpackov | 3 | -0/+21 | |
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. | |||||
2015-09-09 | Add support for evaluation context | Boris Kolpackov | 3 | -0/+35 | |
For now it acts as just the value mode that can be enabled anywhere variable expansion is supported, for example: (foo=bar): And the primary use currently is to enable/test quoted and indirect variable expansion: "foo bar" = FOO BAR print $"foo bar" # Invalid. print $("foo bar") # Yeah, baby. foo = FOO FOO = foo print $($foo) Not that you should do something like this... | |||||
2015-08-24 | Only treat name as directory if it is reversible | Boris Kolpackov | 2 | -0/+12 | |
2015-08-24 | Add support for reversing project qualification to string value | Boris Kolpackov | 4 | -0/+38 | |