Vern Paxson
c0045c4643
hook for skipping chains + optimize common case of all-assignments-managed
2024-05-10 10:56:03 -07:00
Vern Paxson
9d886f61cc
lint nits
2024-05-10 07:45:02 -07:00
Vern Paxson
e75c706488
ZAM implementation, pre-debugging
2024-05-09 17:55:45 -07:00
Vern Paxson
3a0b9325cc
move prototype scaffolding into regular member functions
2024-05-09 15:54:09 -07:00
Vern Paxson
694095c56f
AST code working
2024-05-09 15:11:32 -07:00
Vern Paxson
8fcf2f5d0e
initial framework in place to find chains
2024-05-09 13:45:04 -07:00
Vern Paxson
7c8c83efc4
factor script optimization Expr AST nodes out of main AST header
2024-04-25 09:15:13 -07:00
Vern Paxson
5445e8c7ff
optimization of scripting idioms - min/max, has-elements
2024-04-25 09:15:12 -07:00
Vern Paxson
6f0441d6f9
fix for ZAM optimization of "while" loops
2024-04-17 14:33:31 -07:00
Vern Paxson
74d36eb759
script optimization support for clearing tables/vectors using "delete"
2024-03-08 19:09:46 +01:00
Vern Paxson
e5bb63c662
fixes & enhancements to location information associated w/ AST nodes & ZAM optimization
2024-02-06 11:03:02 +01:00
Vern Paxson
ce09a11a0c
fix for AST analysis of inlined functions
2023-12-04 16:53:32 -08:00
Vern Paxson
087eb1ca4e
new method for Stmt nodes to report whether they could execute a "return"
2023-12-04 16:53:32 -08:00
Vern Paxson
b489cfc508
greater ZAM optimization of inlined function calls
2023-11-10 09:57:35 +01:00
Vern Paxson
1dc74eaa9c
fixes for a number of ZAM optimization bugs
2023-11-10 09:56:59 +01:00
Vern Paxson
c49918ba8b
fixed some warnings about mixing signed & unsigned integers
2023-11-10 09:56:59 +01:00
Benjamin Bannier
f5a76c1aed
Reformat Zeek in Spicy style
...
This largely copies over Spicy's `.clang-format` configuration file. The
one place where we deviate is header include order since Zeek depends on
headers being included in a certain order.
2023-10-30 09:40:55 +01:00
Vern Paxson
3925ff4592
addressed performance and correctness issues flagged by Coverity
2023-08-15 16:07:49 -07:00
Vern Paxson
79c53c9ed6
some code simplifications and streamlining
2023-07-20 09:35:07 -07:00
Vern Paxson
b9949560c6
fixes for ZAM compilation of switch statements
2023-07-17 16:31:30 -07:00
Vern Paxson
cc059f6b51
fix for recent smart pointer change
2023-07-13 11:38:27 -07:00
Vern Paxson
fbdc5e3f29
removed use of unnecessary member variable accessors for StmtList methods
2023-07-11 16:04:30 -07:00
Vern Paxson
1b2cd0c767
migrated some raw pointers to smart pointers
2023-07-11 16:04:30 -07:00
Vern Paxson
1dd2270272
WhenStmt/WhenInfo restructuring in support of ZAM "when" statements
2023-06-30 09:36:14 +02:00
Vern Paxson
4a5a7f975d
bug fixes for script optimization intermediate forms
2023-06-30 09:36:14 +02:00
Vern Paxson
5165a04ae0
ZAM ignores new "assert" statement
2023-06-14 17:41:41 -07:00
Arne Welzel
2f1ea789d1
Merge remote-tracking branch 'origin/topic/awelzel/2285-assert-statement'
...
* origin/topic/awelzel/2285-assert-statement:
NEWS: Small section about assert statement
Stmt: Rework assertion hooks break semantics
Stmt: Introduce assert statement and related hooks
ZeekArgs: Helper for empty arguments
Reporter: Allow AssertStmt to throw InterpreterException
Lift backtrace() code into Func.{h,cc}
2023-06-14 12:51:53 +02:00
Arne Welzel
25ea678626
Stmt: Introduce assert statement and related hooks
...
including two hooks called assertion_failure() and assertion_result() for
customization and tracking of assertion results.
2023-06-12 18:16:02 +02:00
Tim Wojtulewicz
2739275b88
Merge remote-tracking branch 'jsoref/spelling-src'
...
* jsoref/spelling-src:
Spelling src
2022-11-11 12:49:15 -07:00
Tim Wojtulewicz
951250b753
Merge remote-tracking branch 'origin/topic/vern/script-opt-Nov22-maint'
...
* origin/topic/vern/script-opt-Nov22-maint:
Script optimization maintenance and updates: maintenance fixes for variadic run-time checks, '_' placeholder identifier "-O allow-cond" permits compiling scripts to C++ when influenced by @if conditionals more robust standalone compile-to-C++ properties fix for nested "when" statements test suite updates
2022-11-09 18:24:03 -07:00
Josh Soref
cd201aa24e
Spelling src
...
These are non-functional changes.
* accounting
* activation
* actual
* added
* addresult
* aggregable
* aligned
* alternatively
* ambiguous
* analysis
* analyzer
* anticlimactic
* apparently
* application
* appropriate
* arithmetic
* assignment
* assigns
* associated
* authentication
* authoritative
* barrier
* boundary
* broccoli
* buffering
* caching
* called
* canonicalized
* capturing
* certificates
* ciphersuite
* columns
* communication
* comparison
* comparisons
* compilation
* component
* concatenating
* concatenation
* connection
* convenience
* correctly
* corresponding
* could
* counting
* data
* declared
* decryption
* defining
* dependent
* deprecated
* detached
* dictionary
* directional
* directly
* directory
* discarding
* disconnecting
* distinguishes
* documentation
* elsewhere
* emitted
* empty
* endianness
* endpoint
* enumerator
* essentially
* evaluated
* everything
* exactly
* execute
* explicit
* expressions
* facilitates
* fiddling
* filesystem
* flag
* flagged
* for
* fragments
* guarantee
* guaranteed
* happen
* happening
* hemisphere
* identifier
* identifies
* identify
* implementation
* implemented
* implementing
* including
* inconsistency
* indeterminate
* indices
* individual
* information
* initial
* initialization
* initialize
* initialized
* initializes
* instantiate
* instantiated
* instantiates
* interface
* internal
* interpreted
* interpreter
* into
* it
* iterators
* length
* likely
* log
* longer
* mainly
* mark
* maximum
* message
* minimum
* module
* must
* name
* namespace
* necessary
* nonexistent
* not
* notifications
* notifier
* number
* objects
* occurred
* operations
* original
* otherwise
* output
* overridden
* override
* overriding
* overwriting
* ownership
* parameters
* particular
* payload
* persistent
* potential
* precision
* preexisting
* preservation
* preserved
* primarily
* probably
* procedure
* proceed
* process
* processed
* processes
* processing
* propagate
* propagated
* prototype
* provides
* publishing
* purposes
* queue
* reached
* reason
* reassem
* reassemble
* reassembler
* recommend
* record
* reduction
* reference
* regularly
* representation
* request
* reserved
* retrieve
* returning
* separate
* should
* shouldn't
* significant
* signing
* simplified
* simultaneously
* single
* somebody
* sources
* specific
* specification
* specified
* specifies
* specify
* statement
* subdirectories
* succeeded
* successful
* successfully
* supplied
* synchronization
* tag
* temporarily
* terminating
* that
* the
* transmitted
* true
* truncated
* try
* understand
* unescaped
* unforwarding
* unknown
* unknowndata
* unspecified
* update
* usually
* which
* wildcard
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 12:08:15 -05:00
Vern Paxson
ee0a6f6835
Script optimization maintenance and updates:
...
maintenance fixes for variadic run-time checks, '_' placeholder identifier
"-O allow-cond" permits compiling scripts to C++ when influenced by @if conditionals
more robust standalone compile-to-C++ properties
fix for nested "when" statements
test suite updates
2022-11-08 11:56:32 -08:00
Tim Wojtulewicz
e8dbfc1cb0
Fix a bunch of variable shadowing issues from LGTM
2022-11-02 15:54:51 -07:00
Vern Paxson
02cd773c51
make it non-fatal for optimized scripts to encounter an empty "for" body
2022-09-16 09:38:31 -07:00
Tim Wojtulewicz
2abc82722f
Fix a swath of AUTO_CAUSES_COPY issues reported by Coverity
2022-08-15 09:45:46 -07:00
Vern Paxson
18cfee51c2
updates for script optimization
2022-03-23 15:36:35 -07:00
Tim Wojtulewicz
a117c81d85
Fixing a big pile of Coverity issues
...
1469562/1469558: Uninitialized fields in Func constructor
1469571/1469566: Null pointer dereference in Trigger::Init()
1469568: Uninitialized fields in CounterVector constructor
1469570: Uncaught exception in plugin manager
1469569: Resource leak in script_opt::Stmt
1469561/1469561: Uninitialized fields in ZBody constructor
1469559: Uninitialized fields in logging::Manager
1469563: Resource leak in ZAMCompiler::CompileDel
1469549/1469553/1469556: Context not fully initialized in HashVals
1469548: Remove dead code from IPAddr
1469551/1469554: Handle iosource_mgr registration failure in broker::Manager
1469552/1469572: Resource leaks in input::Manager
2022-02-09 14:07:11 -07:00
Vern Paxson
f895008c34
captures for "when" statements
...
update Triggers to IntrusivePtr's and simpler AST traversal
introduce IDSet type, migrate associated "ID*" types to "const ID*"
2022-01-07 14:50:35 -08:00
Tim Wojtulewicz
b2f171ec69
Reformat the world
2021-09-16 15:35:39 -07:00
Vern Paxson
da6ac0b521
switch to ID definition regions; reworked driver functions; more info for reporting uncompilable functions
2021-09-08 10:23:38 -07:00
Vern Paxson
d4eb0224a1
addressed a number of code review comments
2021-06-07 10:52:19 -07:00
Vern Paxson
86aafb7c84
fix for inlining type-based switch statements
2021-05-30 17:36:07 -07:00
Vern Paxson
01bf4b8484
making Exec methods non-const, so execution can manage side-information
2021-03-18 08:22:55 -07:00
Vern Paxson
2114c4a26b
enhancements/changes to the Reduce class in preparation for use-defs
2021-02-06 09:52:35 -08:00
Jon Siwek
b4cf393475
Adjust some Reducer ref-counting and IntrusivePtr usage
2021-01-14 00:24:12 -08:00
Jon Siwek
177b723a60
Switch some Stmt transform/reduce logic to use IntrusivePtr
2021-01-13 22:57:48 -08:00
Jon Siwek
48da8b7d66
Fix a signed/unsigned comparison warning
2021-01-13 12:31:19 -08:00
Vern Paxson
7a9694a2a4
reduction of Stmt subclasses - compiles but does not yet link
2021-01-10 14:13:16 -08:00
Jon Siwek
481d989495
Superficial changes to script-opt related code
...
* Rename overly generic ACCESSORS macro with ZEEK_ prefix
* A few places where whitespace was noticeably wrong/distracting
* Minor/obvious reference/move semantics improvements suggested by linter
* Remove unused detail::Scope::Remove(), no need for deprecation
2020-12-13 10:33:28 -08:00
Vern Paxson
c42586af2c
inlining of Zeek script functions
2020-11-19 16:16:59 -08:00