Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2023-06-07 | Try to enable C++20 modules tests for MinGW GCC | Boris Kolpackov | 1 | -1/+3 | |
2023-05-30 | Add $path.posix_string() and $path.posix_representation() functions | Karen Arutyunov | 1 | -0/+72 | |
2023-01-09 | Fix simple and script tests to correctly terminate processes which don't ↵ | Karen Arutyunov | 1 | -1/+4 | |
close stderr on exit | |||||
2022-12-15 | Add $regex.filter[_out]_{match,search}() functions | Karen Arutyunov | 1 | -0/+116 | |
2022-12-15 | Improve escape sequence support | Boris Kolpackov | 1 | -0/+17 | |
Specifically: 1. In the double-quoted strings we now only do effective escaping of the special `$("\` characters plus `)` for symmetry. 2. There is now support for "escape sequence expansion" in the form $\X where \X can be any of the C/C++ simple escape sequences (\n, \t, etc) plus \0 (which in C/C++ is an octal escape sequence). For example: info "foo$\n$\tbar$\n$\tbaz" Will print: buildfile:1:1: info: foo bar baz | |||||
2022-12-14 | Improve empty simple value to empty list of names reduction heuristics | Boris Kolpackov | 1 | -0/+55 | |
Specifically, do not reduce typed RHS empty simple values for prepend/append and additionally for assignment provided LHS is typed and is a container. | |||||
2022-12-14 | Handle NULL values in $string() and $concat() functions | Boris Kolpackov | 1 | -0/+42 | |
This is relied upon by the parser to provide conversion/concatenation semantics consistent with untyped values. Note that we handle NULL values only for types that have empty representation. | |||||
2022-12-02 | Fail if scope or target qualification in variable expansion is unknown | Boris Kolpackov | 2 | -0/+21 | |
There are three options here: we can "fall through" to an outer scope (there is always the global scope backstop; this is the old semantics, sort of), we can return NULL straight away, or we can fail. It feels like in most cases unknown scope or target is a mistake and doing anything other than failing is just making things harder to debug. | |||||
2022-11-25 | Use operation name as a buildscript name if unable to deduce | Karen Arutyunov | 1 | -12/+36 | |
2022-11-18 | Fix test failure on Windows | Boris Kolpackov | 1 | -1/+1 | |
2022-11-18 | Complete low verbosity diagnostics rework | Boris Kolpackov | 2 | -51/+51 | |
2022-11-16 | Initial low verbosity diagnostics rework | Boris Kolpackov | 2 | -2/+2 | |
2022-11-14 | Add buffering for simple test diagnosticsdiag-buffer | Karen Arutyunov | 2 | -13/+144 | |
Also fix simple test redirecting diff's stdout to stderr. | |||||
2022-11-09 | Use diag_buffer in script | Karen Arutyunov | 7 | -31/+53 | |
2022-11-08 | Make process exit diagnostics consistent | Boris Kolpackov | 1 | -1/+2 | |
In particular, we now always print error message on non-0 exit except in cases where such exit is ignored. | |||||
2022-10-25 | Allow concatenation of path/dir_path type to be a path pattern | Karen Arutyunov | 2 | -1/+30 | |
2022-10-21 | Add support for pairs in script 'for x:...' loop | Karen Arutyunov | 1 | -0/+34 | |
2022-10-21 | Change attribute syntax in script to come after variable in set and for (set ↵ | Karen Arutyunov | 3 | -41/+99 | |
x [...], for x [...]) | |||||
2022-10-20 | Add support for for-loop element type | Karen Arutyunov | 1 | -0/+14 | |
2022-10-18 | Fix unexpected 'unterminated double-quoted sequence' script error | Karen Arutyunov | 2 | -0/+65 | |
2022-10-18 | Invent diag preamble for buildscript | Karen Arutyunov | 2 | -1/+23 | |
2022-10-14 | Make -w|--whitespace to be default for for-loop | Karen Arutyunov | 1 | -6/+17 | |
2022-10-14 | Fix printing test id multiple times on test failure | Karen Arutyunov | 1 | -0/+26 | |
2022-10-13 | Fix script 'for' loop tests | Karen Arutyunov | 2 | -3/+3 | |
2022-10-13 | Add support for 'for' loop second (... | for x) and third (for x <...) forms ↵ | Karen Arutyunov | 3 | -14/+1249 | |
in script | |||||
2022-10-13 | Add test for public/private variable model | Boris Kolpackov | 2 | -0/+50 | |
2022-10-13 | Switch to public/private variables model | Boris Kolpackov | 2 | -40/+40 | |
Now unqualified variables are project-private and can be typified. | |||||
2022-09-30 | Move integer and bool function to separate source/testscript files | Boris Kolpackov | 3 | -39/+47 | |
2022-09-29 | Add $find(<sequence>, <value>), $find_index(<sequence>, <value>) functions | Boris Kolpackov | 4 | -2/+60 | |
The $find() function returns true if the sequence contains the specified value. The $find_index() function returns the index of the first element in the sequence that is equal to the specified value or $size(<sequence>) if none is found. For string sequences, it's possible to request case- insensitive comparison with a flag. | |||||
2022-09-28 | Add support for 'for' loop first form (for x:...) in script | Karen Arutyunov | 2 | -0/+164 | |
2022-09-28 | Add support for 'while' loop in script | Karen Arutyunov | 4 | -20/+62 | |
2022-09-27 | Fix test for handling of name patterns with trailing dot | Karen Arutyunov | 1 | -1/+1 | |
2022-09-23 | Add $is_a(<name>, <target-type>), $filter[_out](<names>, <target-types>) ↵ | Boris Kolpackov | 1 | -0/+36 | |
functions $is_a() returns true if the <name>'s target type is-a <target-type>. Note that this is a dynamic type check that takes into account target type inheritance. $filter[_out]() return names with target types which are-a (filter) or not are-a (filter_out) one of <target-types>. In particular, these functions are useful for filtering prerequisite targets ($<) in ad hoc recipes and rules. | |||||
2022-09-22 | Add $integer_sequence(<begin>, <end>[, <step>]) function | Boris Kolpackov | 1 | -0/+8 | |
It returns the list of uint64 integers starting from <begin> (including) to <end> (excluding) with the specified <step> or 1 if unspecified. For example: hdr = foo.hxx bar.hxx baz.hxx src = foo.cxx bar.cxx baz.cxx assert ($size($hdr) == $size($src)) "hdr and src expected to be parallel" for i: $integer_sequence(0, $size($hdr)) { h = ($hdr[$i]) s = ($src[$i]) ... } | |||||
2022-09-22 | Add support for hex notation for uint64 type | Boris Kolpackov | 1 | -0/+8 | |
Specifically, now we can do: x = [uint64] 0x0000ffff cxx.poptions += "-DOFFSET=$x" # -DOFFSET=65535 cxx.poptions += "-DOFFSET=$string($x, 16)" # -DOFFSET=0xffff cxx.poptions += "-DOFFSET=$string($x, 16, 8)" # -DOFFSET=0x0000ffff Note that there is no hex notation support for the int64 (signed) type. | |||||
2022-09-19 | Allow computed variables in depdb preamble similar to impure functions | Boris Kolpackov | 1 | -5/+27 | |
2022-09-02 | Add ability to specify `in` rule substitution as key-value pairs | Boris Kolpackov | 1 | -2/+27 | |
2022-09-02 | Rename in.substitution variable to in.mode | Boris Kolpackov | 1 | -1/+1 | |
The original name is still recognized for backwards compatibility. | |||||
2022-07-08 | Fix some tests to match canned command line semantics | Karen Arutyunov | 4 | -4/+4 | |
2022-07-07 | Use new cmdline type for canned command lines in {Build,Test}script | Boris Kolpackov | 5 | -6/+30 | |
2022-06-28 | Add support for querying out-qualified target-specific variables | Boris Kolpackov | 2 | -8/+11 | |
2022-04-19 | Use target recipe for auxiliary data storage during match-apply | Boris Kolpackov | 1 | -2/+2 | |
In particular, we now have separate auxiliary data storage for inner and outer operations. | |||||
2022-03-23 | Make project configuration variables non-nullable by default | Boris Kolpackov | 1 | -3/+33 | |
A project configuration variable with the NULL default value is naturally assumed nullable, for example: config [string] config.libhello.fallback_name ?= [null] Otherwise, to make a project configuration nullable we use the `null` variable attribute, for example: config [string, null] config.libhello.fallback_name ?= "World" | |||||
2022-02-21 | Factor process-wide initialization to init_process() function | Boris Kolpackov | 1 | -1/+1 | |
2022-02-14 | Fix module loading in libbuild2 test | Boris Kolpackov | 1 | -8/+17 | |
2022-02-10 | Make few global types separately constructible/initializable | Boris Kolpackov | 1 | -1/+1 | |
2022-01-26 | Make bash module install into bin/<project>.bash/ to avoid clashes | Boris Kolpackov | 1 | -2/+2 | |
Also, expect the first component in the import path to be full project name even in case it has the .bash extension. | |||||
2022-01-18 | Add dynamic prerequisites to $< unless --adhoc is specified | Boris Kolpackov | 1 | -57/+152 | |
Also add a few tests for depdb-dyndep. | |||||
2021-12-02 | Fix path function test failure on Windows | Boris Kolpackov | 1 | -1/+1 | |
2021-12-02 | Add $root_directory(<path>) function | Boris Kolpackov | 1 | -0/+22 | |