Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-09-10 | Reimplement buildspec parsing to deal with eval context | Boris Kolpackov | 1 | -71/+108 | |
In short, in buildspec, parens are treated as operation application rather than eval context unless double-quoted. So in 'clean(foo)' we have the clean operation on target foo while in '"clean(foo)"' we have target cleanfoo. Also, as a bonus, we can now do {clean update}(/long/target/name/). | |||||
2015-09-10 | Fix bug in names() chunking mode | Boris Kolpackov | 1 | -4/+4 | |
2015-09-10 | Add support for token pre-processing in lexer | Boris Kolpackov | 2 | -2/+21 | |
2015-09-10 | Add support for chunking name parsing | Boris Kolpackov | 2 | -11/+30 | |
2015-09-09 | For newline escaping, ignore whole thing instead of making it newline | Boris Kolpackov | 1 | -5/+4 | |
To capture literal newline, use quoting. | |||||
2015-09-09 | Add support for quoting directive names | Boris Kolpackov | 6 | -48/+45 | |
Now only unquoted, literal names are recognized as directives, for example: 'print' = abc print $print | |||||
2015-09-09 | Add initial support for function calls: $func(a b c) | Boris Kolpackov | 1 | -27/+59 | |
Now it is just a stub that prints the function name and its argument. Currently only single argument can be passed (no value pack support yet). | |||||
2015-09-09 | Add support for evaluation context | Boris Kolpackov | 4 | -130/+204 | |
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-09-09 | Reimplement double quote lexing to avoid "implied quote" trick | Boris Kolpackov | 2 | -104/+96 | |
2015-09-08 | Initial take on double quote support | Boris Kolpackov | 2 | -19/+93 | |
Currently, $(foo)-style variable expansion is not supported. | |||||
2015-09-08 | Use mode stack in lexer | Boris Kolpackov | 3 | -24/+44 | |
2015-09-08 | Implement single quote support | Boris Kolpackov | 4 | -5/+47 | |
2015-09-08 | Move context-dependent functions from diagnostics to context | Boris Kolpackov | 6 | -184/+183 | |
2015-09-08 | Clean up lexer mode logic | Boris Kolpackov | 3 | -3/+4 | |
2015-09-08 | Rework diagnostics verbosity, add quiet mode/option | Boris Kolpackov | 32 | -156/+234 | |
2015-09-04 | Fix clang warnings | Boris Kolpackov | 2 | -3/+4 | |
2015-09-04 | Fix static initialization order issue | Boris Kolpackov | 2 | -4/+14 | |
2015-09-02 | Override duplicate generated C++ dependency prefix | Boris Kolpackov | 1 | -3/+12 | |
2015-09-02 | Remove stray space | Boris Kolpackov | 1 | -1/+1 | |
2015-09-01 | Minor changes | Boris Kolpackov | 2 | -4/+1 | |
2015-08-31 | Clean parser implementation | Boris Kolpackov | 2 | -59/+13 | |
2015-08-31 | Rework scoping logic | Boris Kolpackov | 28 | -246/+475 | |
Now the src directory is entered into the scope map and points to the same scope as out. This means that targets that are in src, not out (e.g., source files) will "see" rules, variables, etc. This becomes important when we try, for example, to install a source file (say, a header) from src: we need the rule as well as the install.* variables. | |||||
2015-08-29 | New configure meta-operation implementation | Boris Kolpackov | 11 | -27/+88 | |
Now we search and match (but do not execute) a rule for every operation supported by the project. | |||||
2015-08-27 | Dist module/meta-operation initial implementation | Boris Kolpackov | 34 | -229/+1093 | |
2015-08-24 | Ignore unknown prerequisite types in C++ link rule | Boris Kolpackov | 2 | -13/+0 | |
2015-08-24 | Cosmetic change | Boris Kolpackov | 1 | -1/+1 | |
2015-08-24 | Only treat name as directory if it is reversible | Boris Kolpackov | 2 | -29/+35 | |
2015-08-24 | Add support for reversing project qualification to string value | Boris Kolpackov | 1 | -1/+26 | |
2015-08-24 | New variable architecture | Boris Kolpackov | 37 | -955/+1988 | |
2015-08-17 | Tighten variable_map interface | Boris Kolpackov | 4 | -35/+54 | |
2015-08-14 | Don't short-cut to group_state if recipe is group_recipe | Boris Kolpackov | 2 | -15/+8 | |
This way we mess up the dependents count. | |||||
2015-08-14 | Rework meta/operation registration | Boris Kolpackov | 16 | -115/+186 | |
We now have global tables for meta/operation. Plus each can then be enabled on the per-project basis. | |||||
2015-08-14 | Fix several issues in outer operation recipe override logic | Boris Kolpackov | 3 | -24/+50 | |
2015-08-13 | Rework postponed logic | Boris Kolpackov | 12 | -75/+88 | |
Specifically, now postponed is only used by the execution mode logic and rules should not return it directly. | |||||
2015-08-03 | Fix few bugs | Boris Kolpackov | 3 | -4/+10 | |
2015-08-03 | match_only rework, part 2 | Boris Kolpackov | 8 | -96/+123 | |
2015-08-03 | match_only and dependents count rework, part 1 | Boris Kolpackov | 6 | -29/+73 | |
2015-07-31 | Cosmetic change | Boris Kolpackov | 1 | -1/+1 | |
2015-07-31 | Essential install module functionality | Boris Kolpackov | 27 | -198/+1017 | |
2015-07-29 | Initial support for target type/pattern-specific variables | Boris Kolpackov | 7 | -26/+145 | |
2015-07-28 | Install module genesis | Boris Kolpackov | 8 | -7/+195 | |
2015-07-24 | Fix bugs in dependency extraction code | Boris Kolpackov | 1 | -3/+15 | |
2015-07-24 | Add support for generated test input/output | Boris Kolpackov | 15 | -124/+273 | |
2015-07-24 | Further test module development | Boris Kolpackov | 7 | -55/+305 | |
2015-07-23 | Basic test support | Boris Kolpackov | 12 | -41/+172 | |
2015-07-22 | Fix postponed re-examination logic | Boris Kolpackov | 6 | -25/+29 | |
Now postponed takes precedence over changed. | |||||
2015-07-21 | Test module genesis | Boris Kolpackov | 13 | -19/+284 | |
2015-07-21 | Be quiet when running pre/post operations | Boris Kolpackov | 1 | -2/+8 | |
2015-07-21 | Improve nested operations support | Boris Kolpackov | 7 | -87/+124 | |
The idea is this: we need to be able to override "conditional, inner for outer" recipes with the "unconditional inner" ones. Here is the concrete scenario: we have {update, test} action and the lib{} target that is both mentioned as a prerequisite of ./ and exe{}, which is a test. At first, we want to ignore lib{} when reached as a prerequisite of ./. But then we get to it via exe{} (which is a test and thus should be updated). At this point we should override the recipe for lib{} with the one that would update it rather than ignore. | |||||
2015-07-21 | Add alias{} target type, use as base for dir{} | Boris Kolpackov | 5 | -16/+40 | |