* origin/topic/vern/when-lambda:
explicitly provide the frame for evaluating a "when" timeout expression
attempt to make "when" btest deterministic
tests for new "when" semantics/errors
update existing test suite usage of "when" statements to include captures
update uses of "when" in base scripts to include captures
captures for "when" statements update Triggers to IntrusivePtr's and simpler AST traversal introduce IDSet type, migrate associated "ID*" types to "const ID*"
logic (other than in profiling) for assignments that yield separate values
option for internal use to mark a function type as allowing non-expression returns
removed some now-obsolete profiling functionality
minor commenting clarifications
* origin/topic/vern/CPP-type-switch:
support for compiling type-based switches to C++
make encountering uncompilable "standalone" functions to be a hard error
fix: ZAM could misinterpret a "type" switch that starts with a "default"
fix: don't treat pseudo-identifiers in type cases as local variables
removed development helper scripts now obsolete with --optimize-files=
* origin/topic/vern/cpp-maint-dec21:
fixes for vector operations
flag globals initialized to opaque values as non-compilable
skip type signatures for lambdas
fix for translating filenames beginning with numbers to C++ variable names
remove unnecessary includes
* origin/topic/vern/CPP-cond:
fix btest comment to more accurately describe the test
clang-format issue
btests for erroneous script conditionals
avoid compiling-to-C++ for functions potentially influenced by conditionals
track the use of conditionals in functions and files
AST profiles track the associated function/body/expression
All changes in this patch were performed automatically with `shfmt` with
configuration flags specified in `.pre-commit-config.yaml`.
In addition to fixing whitespace the roundtrip through shfmt's AST also
transforms command substitutions
`cmd`
# becomes
$(cmd)
and some redirects
>&2 echo "msg"
# becomes
echo >&2 "msg"
* origin/topic/vern/CPP-speedup:
use iterator-based idiom for check-if-present-then-access
const-ify member function
switch looping over vectors to use iterators
remove unused local variables
efficiency fix - return a reference rather than a copy of a map
fix for case-sensitive file systems
geez sometimes it's signed sometimes it's not
documentation updates
remove -O add-C++ and -O update-C++ options
extensive rewrite of generation & execution of run-time initialization
factoring out CPPEscape to be a standalone function
removing unused SubNetType class