Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
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-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. | |||||
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 | |
2021-12-02 | Add $relative(<path>,<dir-path>) function | Boris Kolpackov | 1 | -0/+6 | |
2021-11-26 | Add $size(string), $size(path), and $size(dir_path) functions | Boris Kolpackov | 2 | -0/+18 | |
2021-11-04 | Fix test | Boris Kolpackov | 1 | -1/+1 | |
2021-11-04 | Add $size() function to get size of sequence (names, strings, etc) | Boris Kolpackov | 3 | -5/+24 | |
2021-11-02 | Add $sort() function | Boris Kolpackov | 3 | -1/+34 | |
Available overloads: $sort(<names> [, <flags>]) $sort(<ints> [, <flags>]) $sort(<strings> [, <flags>]) $sort(<paths> [, <flags>]) $sort(<dir_paths> [, <flags>]) The following flag is supported by the all overloads: dedup - in addition to sorting also remove duplicates Additionally, the strings overload also support the following flag: icase - sort ignoring case Note that on case-insensitive filesystem the paths and dir_paths overload's order is case-insensitive. | |||||
2021-09-14 | Consistently install prerequisites from any scope by default | Boris Kolpackov | 1 | -0/+1 | |
It is also now possible to adjust this behavior with global config.install.scope override. Valid values for this variable are: project -- only from project strong -- from strong amalgamation weak -- from weak amalgamation global -- from all projects (default) | |||||
2020-12-08 | Redo $normalize(true) as separate $actualize() | Karen Arutyunov | 1 | -9/+12 | |
2020-09-28 | Add $string.trim() function | Boris Kolpackov | 1 | -0/+7 | |
2020-07-18 | Add $regex.find_match() and $regex.find_search() functions | Karen Arutyunov | 1 | -0/+84 | |
2020-04-03 | Skip unmatched lines in $regex.replace_lines() if format_no_copy flag is ↵ | Karen Arutyunov | 1 | -0/+20 | |
specified | |||||
2020-03-17 | Add $defined(<variable>) function | Boris Kolpackov | 1 | -2/+17 | |
2020-02-12 | Add builtins support for $process.run*() functions | Karen Arutyunov | 1 | -16/+128 | |
2020-02-07 | Drop copyright notice from source code | Karen Arutyunov | 14 | -14/+0 | |
2019-11-15 | Generalize attributes to be comma-separated with arbitrary values | Boris Kolpackov | 1 | -3/+3 | |
Before: x = [string null] After: x = [string, null] | |||||
2019-11-14 | Require attributes to be separated from words and similar on RHS | Boris Kolpackov | 1 | -1/+1 | |
2019-11-08 | Add $regex.replace_lines() function | Karen Arutyunov | 1 | -0/+82 | |
2019-11-05 | Fix tests | Boris Kolpackov | 5 | -4/+24 | |
2019-10-01 | Add support for $string.icasecmp() | Karen Arutyunov | 2 | -0/+32 | |
2019-10-01 | Make $regex.{match,search}() to return NULL for no match if return_match or ↵ | Karen Arutyunov | 1 | -4/+4 | |
return_match flag is specified | |||||
2019-10-01 | Rename $filesystem.path_match() to $path.match() | Karen Arutyunov | 2 | -79/+79 | |
2019-10-01 | Adapt to swapping of entry and pattern parameters in butl::path_match() | Karen Arutyunov | 1 | -19/+19 | |
2019-01-16 | Update copyright year | Karen Arutyunov | 12 | -12/+12 | |
2018-09-04 | Rename .test/test{} to .testscript/testscript{} | Boris Kolpackov | 6 | -6/+6 | |
2018-07-16 | Resolve function overload via the argument reversal to untyped | Boris Kolpackov | 2 | -14/+2 | |
2018-06-20 | Add $process.run() and $process.run_regex() functions | Boris Kolpackov | 2 | -0/+35 | |
$process.run(<prog>[ <args>...]) Return trimmed stdout. $process.run_regex(<prog>[ <args>...], <pat> [, <fmt>]) Return stdout lines matched and optionally processed with regex. Each line of stdout (including the customary trailing blank) is matched (as a whole) against <pat> and, if successful, returned, optionally processed with <fmt>, as an element of a list. | |||||
2018-05-19 | Update copyright year | Karen Arutyunov | 10 | -10/+10 | |
2018-05-19 | Get rid of doc{version} and types for testscript and manifest in buildfiles | Karen Arutyunov | 5 | -5/+5 | |
2017-11-10 | Add $directory(), $base(), $leaf() and $extension() functions | Karen Arutyunov | 1 | -0/+65 | |
2017-09-11 | Add ability to pass scope to buildfile functions, add $install.resolve() | Boris Kolpackov | 2 | -0/+38 | |
2017-08-30 | Add $regex.split(), $regex.merge() and $regex.apply() functions | Karen Arutyunov | 1 | -0/+96 | |
2017-06-27 | Add support for regex function family | Karen Arutyunov | 2 | -0/+260 | |
2017-06-26 | Add support for $path_search() and $path_match() | Karen Arutyunov | 2 | -0/+160 | |
2017-06-21 | Add support for $envvar() function | Karen Arutyunov | 1 | -0/+61 | |
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-01-23 | Implement automatic loading of directory buildfiles | Boris Kolpackov | 2 | -4/+2 | |
Now instead of explicitly writing: d = foo/ bar/ ./: $d include $d We can (usually) just write: ./: foo/ bar/ | |||||
2017-01-19 | Add support for portable path modifer and dot character escaping inversion | Karen Arutyunov | 1 | -3/+3 | |
2017-01-05 | Update copyright year | Boris Kolpackov | 5 | -5/+5 | |
2017-01-05 | Add support for regex in runner | Karen Arutyunov | 1 | -3/+1 | |
2016-12-16 | Convert tests/ to subproject, initial work on cross-testing support | Boris Kolpackov | 3 | -3/+5 | |
2016-12-09 | Initial parallel scheduler implementation, use to run testscrips | Boris Kolpackov | 1 | -2/+2 | |
2016-12-05 | Add optional actualize argument to $path.normalize() | Boris Kolpackov | 1 | -10/+10 | |
2016-12-01 | Implement testscript variable-if | Boris Kolpackov | 1 | -1/+1 | |
Now a variable-only if is treated the same as a single variable when deciding whether it is part of a test or setup/teardown. | |||||
2016-12-01 | Add path.canonicalize() function | Boris Kolpackov | 1 | -1/+12 | |
2016-12-01 | Organize tests/, factor common testscript fragments | Boris Kolpackov | 4 | -18/+2 | |