Commit graph

97 commits

Author SHA1 Message Date
Tim Wojtulewicz
311a744a20 Fix clang-tidy cppcoreguidelines-virtual-class-destructor warnings in headers 2025-06-23 08:35:24 -07:00
Tim Wojtulewicz
fb55c8856e Fix clang-tidy modernize-use-default-member-init warnings in headers 2025-06-23 08:35:24 -07:00
Vern Paxson
908e8a3a27 ZAM support for keeping "assert" statements 2024-12-03 10:37:38 -07:00
Vern Paxson
0aaf83e299 removing now-vestigial "add" and "delete" statements 2024-05-29 12:40:06 -07:00
Vern Paxson
5445e8c7ff optimization of scripting idioms - min/max, has-elements 2024-04-25 09:15:12 -07:00
Tim Wojtulewicz
9de1dd16d5 Remove variant from StdFunctionStmt
The variant ended up conflicting with std::bind, which resulted in failures
on the btest invoking it. Change back to a single function that takes a
flow, and default it to a value in Exec.
2024-03-19 09:07:45 -07:00
Tim Wojtulewicz
39890fda5e Add a method to register an event handler to a std::function via C++ 2024-03-18 16:36:25 -07:00
Arne Welzel
caa1c7493f Obj: Implement with_location_of() as template 2024-02-06 11:03:06 +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
087eb1ca4e new method for Stmt nodes to report whether they could execute a "return" 2023-12-04 16:53:32 -08: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
81a9745fb3 "-O gen-C++" support for "assert" statements 2023-08-24 11:46:59 -07:00
Vern Paxson
3925ff4592 addressed performance and correctness issues flagged by Coverity 2023-08-15 16:07:49 -07:00
Tim Wojtulewicz
f202073387 Merge remote-tracking branch 'origin/topic/vern/minor-modernization'
* origin/topic/vern/minor-modernization:
  removed use of unnecessary member variable accessors for StmtList methods
  migrated some raw pointers to smart pointers
2023-07-11 16:15:52 -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
0fe32715c0 Merge remote-tracking branch 'origin/topic/awelzel/pre-commit-typos'
* origin/topic/awelzel/pre-commit-typos:
  all: Fix typos identified by typos pre-commit hook
  NEWS typo fixes
  Start with a typos pre-commit file
2023-06-14 13:06:47 +02:00
Arne Welzel
7a043e5e8f all: Fix typos identified by typos pre-commit hook 2023-06-13 17:57:32 +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
Vern Paxson
84906171ba simplify WhenInfo and Trigger classes given removal of old capture semantics 2023-04-02 11:36:39 -07:00
Arne Welzel
bb80d80218 Stmt: Error on deprecated when/local usage
This has been around since Zeek v4.1, so it was warned about in Zeek 5.0
LTS and we could've removed it with 5.1.

Also removed merge_top_scope() from the zeek::detail namespace, it's
unused now.

Updated the when-aggregates test somehow. I'm not quite sure what had
been tested there :-/
2023-03-20 21:35:53 +01:00
Arne Welzel
171846a37a parse.y/directives: Reject directives as statements
Avoid the issue outlined in #2289 where the @if or @else is taken as the
statement of an `if`, `for` or `while` by rejecting such constructs.

Effectively this means the following scripts are now rejected:

    # Print's "cond true" with Zeek 5.0 even though the `if ( F )`
    # should be in effect.

    if ( F )
        @if ( T )
            print "cond true";
        @else
            print "cond false";
        @endif

or

    # Print's "hello" once with Zeek 5.0
    local v = vector( 1, 2, 3 );

    for ( i in v )
        @if ( T )
        print("hello")
        @endif

To make above work as intended, additional braces can be used.

    if ( T )
        {
    @if ( cond )
            print "cond true";
    @else
            print "cond false";
    @endif
        }

    for ( i in v )
        {
    @if ( T )
        print("hello")
    @endif
        }
2022-08-26 09:42:50 +02:00
Vern Paxson
702172079a tweaks per reviewing feedback 2022-05-13 16:16:21 -07:00
Vern Paxson
48f1e4df42 Change "when" statements that don't require closures to use new implementation.
Provide hooks for script optimization access to "when" statements.
Regularize treatment of naming and timeouts for Triggers.
2022-05-12 14:05:20 -07:00
Tim Wojtulewicz
3d9d6e953b Merge remote-tracking branch 'origin/topic/vern/when-lambda'
* 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
2022-01-14 14:41:42 -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
Vern Paxson
721d99636e support for compiling type-based switches to C++ 2021-12-23 11:39:58 -08:00
Tim Wojtulewicz
b2f171ec69 Reformat the world 2021-09-16 15:35:39 -07:00
Vern Paxson
c81a331944 make "switch" internals accessible to ZAM; tidying of same 2021-05-30 18:13:17 -07:00
Vern Paxson
f2f041b63b various accessors used by ZAM compiler 2021-05-30 17:16:03 -07:00
Vern Paxson
22776167bb factor out "print" statement's execution functionality 2021-03-24 15:01:33 -07:00
Vern Paxson
01bf4b8484 making Exec methods non-const, so execution can manage side-information 2021-03-18 08:22:55 -07:00
Tim Wojtulewicz
4ad08172d0 Remove obsolete ZEEK_FORWARD_DECLARE_NAMESPACED macros 2021-02-24 14:35:44 -07:00
Jon Siwek
cfe29c2488 Merge branch 'master' into topic/vern/reaching-defs 2021-02-01 17:27:37 -08:00
Tim Wojtulewicz
0618be792f Remove all of the random single-file deprecations
These are the changes that don't require a ton of changes to other files outside
of the original removal.
2021-01-27 10:52:40 -07:00
Vern Paxson
c380a2a61a accessors and converters for Stmt subclasses 2021-01-23 10:33:30 -08:00
Jon Siwek
fffeea472a Simplify WhileStmt::CondPredStmt() 2021-01-13 22:59:15 -08:00
Jon Siwek
817315d68e Use std::move() in Case::UpdateBody() 2021-01-13 22:58:39 -08:00
Vern Paxson
7a9694a2a4 reduction of Stmt subclasses - compiles but does not yet link 2021-01-10 14:13:16 -08:00
Vern Paxson
10e80dfcd3 reductions of expressions in ASTs - code compiles but doesn't yet link 2021-01-10 14:04:01 -08:00
Vern Paxson
c30f787949 removed unused EventBodyList subclass 2021-01-10 13:19:59 -08:00
Vern Paxson
c42586af2c inlining of Zeek script functions 2020-11-19 16:16:59 -08:00
Tim Wojtulewicz
96d9115360 GH-1079: Use full paths starting with zeek/ when including files 2020-11-12 12:15:26 -07:00
Tim Wojtulewicz
fe0c22c789 Base: Clean up explicit uses of namespaces in places where they're not necessary.
This commit covers all of the common and base classes.
2020-08-24 12:07:00 -07:00
Tim Wojtulewicz
0ac3fafe13 Move zeek::net namespace to zeek::run_state namespace.
This also moves all of the code from Net.{h,cc} to RunState.{h,cc} and marks Net.h as deprecated
2020-08-20 16:11:47 -07:00
Tim Wojtulewicz
01ce18894b Rename types in ZeekList.h to be consistent with the style guide 2020-08-20 16:11:47 -07:00
Tim Wojtulewicz
106a92a9a8 Rename BroList.h to ZeekList.h 2020-08-20 16:11:46 -07:00