Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2015-11-24 | Add missing #include | Boris Kolpackov | 1 | -0/+1 | |
2015-11-24 | Account for dangling/inaccessible links | Boris Kolpackov | 1 | -1/+12 | |
2015-09-25 | Quote arguments with spaces in print_process() | Boris Kolpackov | 1 | -4/+17 | |
2015-09-11 | Use install::alisa_rule to ignore non-installable prerequisites | Boris Kolpackov | 5 | -9/+66 | |
2015-09-11 | Check amalgamation itself when searching for imported project | Boris Kolpackov | 1 | -1/+10 | |
2015-09-11 | Handle file io failures in parser | Boris Kolpackov | 4 | -84/+99 | |
2015-09-11 | Add support for unnamed projects | Boris Kolpackov | 8 | -5/+34 | |
Sometimes (e.g., in bpkg configuration) we don't have a project name. In fact, it is not really a project; it can never be referenced in an import directive. So we now have a notion of an unnamed project. Such a project should still have the 'project' variable set first thing in bootstrap.build but its value should be empty. Note that we can still amalgamate such projects just liked named ones. | |||||
2015-09-11 | Preserve pairs in expansion | Boris Kolpackov | 1 | -0/+6 | |
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 | Lexer test fixes | Boris Kolpackov | 1 | -4/+4 | |
2015-09-10 | Add support for chunking name parsing | Boris Kolpackov | 6 | -27/+146 | |
2015-09-09 | For newline escaping, ignore whole thing instead of making it newline | Boris Kolpackov | 6 | -5/+44 | |
To capture literal newline, use quoting. | |||||
2015-09-09 | Add support for quoting directive names | Boris Kolpackov | 9 | -48/+57 | |
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 | 5 | -27/+85 | |
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 | 13 | -131/+276 | |
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 | 6 | -105/+105 | |
2015-09-08 | Initial take on double quote support | Boris Kolpackov | 6 | -20/+148 | |
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 | 6 | -15/+95 | |
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 | Update bootstrap | Boris Kolpackov | 1 | -2/+8 | |
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 | 41 | -248/+600 | |
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 | 44 | -230/+1127 | |
2015-08-24 | Test installing doc{} as prerequisite of exe{} | Boris Kolpackov | 2 | -1/+2 | |
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 | 4 | -29/+47 | |
2015-08-24 | Add support for reversing project qualification to string value | Boris Kolpackov | 5 | -1/+64 | |
2015-08-24 | New variable architecture | Boris Kolpackov | 39 | -957/+1990 | |
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 | 13 | -78/+91 | |
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 | 7 | -30/+75 | |
2015-07-31 | Cosmetic change | Boris Kolpackov | 1 | -1/+1 | |
2015-07-31 | Essential install module functionality | Boris Kolpackov | 45 | -200/+1086 | |