* origin/topic/vern/zval: (42 commits)
whitespace tweaks
resolved some TODO comments
remove unnecessary casts, and change necessary ones to use static_cast<>
explain cmp_func default
change functions for ZVal type management to static members
fix some unsigned/signed integer warnings
address lint concern about uninitialized variable
Remove use of obsolete forward-declaration macros
fix #include's that lack zeek/ prefixes
explicitly populate holes created in vectors
fixes for now-incorrect assumption that GetField always returns an existing ValPtr
memory management for assignment to vector elements
memory management for assignment to record fields
destructor cleanup from ZAM_vector/ZAM_record
fix #include's that lack zeek/ prefixes
overlooked another way in which vector holes can be created
initialize vector holes to the correct corresponding type
explicitly populate holes created in vectors
fix other instances of GetField().get() assuming long-lived ValPtr's
fix for now-incorrect assumption that GetField always returns an existing ValPtr
...
- Removed a couple of dead statements during merge
* origin/topic/vern/cpp-new-func:
option for deterministic descriptions of sets & tables
determinism for concurrent Zeek test suite invocations; split out deprecations
disambiguate descriptions of enums; include attributes when describing records
more liberal view of attribute equality; allow suppressing attr type-checking
support for operations on sets that return new values
low-level addition of enum values
sundry accessors/cast-ers; RE_Matcher's track their construction values
convenience functions for comparing IP addresses
- During merge, simplified the API docs for Analyzer::DeleteChild()
(found it unclear/unnecessary to refer to any `std` container types)
* origin/topic/timw/analyzer-iterators:
Clean up iterator usage in Analyzer
* origin/topic/vern/cpp-prep-fixes:
fix for associating current scope with the name of enums; name tidying
avoid infinite recursion in same_type() if it is analyzing recursive types
remove iffy reliance on type punning that relies on interpreter's behavior
fixes for propagating optimization options, and pruning script function analysis
* origin/topic/vern/cpp-prep-simple:
tidying with respect to "const", and streamlining OuterIDBindingFinder
making Exec methods non-const, so execution can manage side-information
removing unneeded BoolVal constructor that can cause overload ambiguity issues
lint fixes: ensuring functions return values, robustness to nil Val's
correcting some simple typos
This avoids a problem identified by amanbansal2709 in pull
request #1288. I fixed it in a different way than that pull request
by making sure the ts field is always set so that this isssue doesn't
return in the future.
The files framework uses strncpy to copy data into the buffer that is
used for IRC/FTP mime type detection. From all I can tell that means
that, in these cases, currently mime type detection will be messed up if
the data being passed in contains zero bytes.
This can improve performance significantly: ~3.5x faster when tested on
a large file passing data to the file analysis framework in small chunks
of 20 bytes.
- Removed a stray `printf()` from script-opt Reduce code
* origin/topic/vern/ast-opt: (23 commits)
Tweak minor const-ref/std::move things in script-opt code
Add alternative 'xform' baseline for test: broker.store.create-failure
Add explicit return value to Reducer::SameOp()
fixed AST transformation logic for boolean expressions
don't know how I overlooked these minor test suite updates
"opt" btest baseline updates due to AST optimizations changing printed code
"opt" baseline exceptions due to incompatibility with optimize-AST and -u
new "opt" btest alternative
update to "xform" test suite baseline due to recent line number changes
logic for driving AST optimization when requested
methods implementing AST optimization (aliasing, constant propagation, CSE)
helper class checking if common-subexpression elimination opportunity is valid
helper function for comparing collections of definition points
track more information about temporary variables
simplify and tidy up some interfaces
enable setting "-O optimize-AST" option
fix for reducing operations on boolean vectors
control whether checking for type-equivalence generates warnings
remove unneeded virtual method (same as inherited method)
accessors for additional Expr subclasses
...