* origin/topic/vern/cpp-prep2:
Avoid a redundant set operation in ProfileFuncs::MergeInProfile()
Use std::move() where possible in parse.y build_local()/build_global()
optionally hash original, not extended, form of records for profiling profile types associated with global initializations incorporate type name, if present, into type hash
fixed out-of-range enum constant
method to add a fully-qualified enum name (module name included)
enum types track whether they've had values added via "redef"
tracking of original size of records (pre redef'ing)
Added TableVal::ToMap to retrieve a table's entire contents as a unordered_map
micro whitespace nit
factoring out some replicated code in the parser
some micro-preening of parse.y; no semantic changes
for readability, removed explicit scoping in parse.y; no semantic changes
* origin/topic/vern/cpp-prep-profiling:
Add missing errno include to ProfileFunc.cc
Adjust GetAttrs() usage in ProfileFunc::PreExpr() to const-reference
Fix whitespace in ProfileFunc::PreExpr()
Avoid redundant map/set searches in various ProfileFunc methods
Improve detail::script_specific_filename()
Use std::string_view in p_hash() to avoid string copies
function profiling rewritten - more detailed info, supports global profiling
track whether a given function/body should be included/skipped for optimization
* origin/topic/jsiwek/ci-alpine:
Add CI task for Alpine Linux
Separate stdout from stderr in btest baselines
Remove newline-eof canonification attempt in diff-remove-timestamps
Change a <sys/errno.h> include to <errno.h>
On Alpine (BusyBox `sed`), the previous `sed -e '$a\'` invocation always
added a newline, breaking most every diff. There doesn't seem to be a
need to attempt normalizing EOF newlines at the moment and doing it that
way doesn't seem to be portable anyway. If canonifiers need to be
portable, `sed` should be treated as a text-processing tool and POSIX
definition of text-file is zero or more newline-terminated
character-sequences, so if canonification of Baselines via `sed` is
required, those Baselines should always end with a newline to be
considered text files. I.e. that's not the job of this canonifier, and
changing it also doesn't necessarily generalize since it could be
considered coincidental that diff-remove-timestamps in particular is the
default canonifier that's commonly used while there's still others that
also make use of `sed`.
* origin/topic/vern/global-stmts:
whitespace adjustment
"balance" tests with multiple Zeek scripts to load the same elements
put global statements into a quasi-function to support script optimization
* origin/topic/jsiwek/misc-val-tweaks:
Fix sign-compare compiler warning in coerce_to_record()
Fix maybe-uninitialized warning in ZVal::ToVal()
Change RecordVal::GetFieldAs() to use std::vector::operator[]
Add RecordVal::AssignField() and use it in supervisor code
Since the method claims it's up to the user to ensure the field exists
before calling, the extra bounds-checking done by std::vector::at()
isn't needed.
This is a convenience method to assign a known record field value by
field name. May also be useful to reduce warnings from static analysis
(e.g. Coverity) about not checking for negative return values before
assigning since that now flows through a [[noreturn]] error path.
- Restored a deprecated version of 'supervisor_rotation_format_func'
during merge.
* origin/topic/vlad/expose_supervisor_rotation_func:
Rename supervisor_rotation_format_func to archiver_rotation_format_func, and expose it for non-supervised setups
Previously, a system-wide installation of any bundled auxil/ software
(like CAF) may get found/included rather than the bundled version and
possibly break the build.