mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
remove -O force-C++, and also some inadvertently replicated code
This commit is contained in:
parent
c116b2b8ad
commit
2b0f1c9d6e
5 changed files with 4 additions and 92 deletions
|
@ -162,7 +162,6 @@ static void set_analysis_option(const char* opt, Options& opts)
|
|||
fprintf(stderr, " add-C++ generate private C++ for any missing script bodies\n");
|
||||
fprintf(stderr, " dump-uds dump use-defs to stdout; implies xform\n");
|
||||
fprintf(stderr, " dump-xform dump transformed scripts to stdout; implies xform\n");
|
||||
fprintf(stderr, " force-use-C++ use available C++ script bodies, warning about missing ones\n");
|
||||
fprintf(stderr, " gen-C++ generate C++ script bodies\n");
|
||||
fprintf(stderr, " gen-standalone-C++ generate \"standalone\" C++ script bodies\n");
|
||||
fprintf(stderr, " help print this list\n");
|
||||
|
@ -184,8 +183,6 @@ static void set_analysis_option(const char* opt, Options& opts)
|
|||
a_o.activate = a_o.dump_uds = true;
|
||||
else if ( util::streq(opt, "dump-xform") )
|
||||
a_o.activate = a_o.dump_xform = true;
|
||||
else if ( util::streq(opt, "force-use-C++") )
|
||||
a_o.force_use_CPP = true;
|
||||
else if ( util::streq(opt, "gen-C++") )
|
||||
a_o.gen_CPP = true;
|
||||
else if ( util::streq(opt, "gen-standalone-C++") )
|
||||
|
|
|
@ -63,14 +63,12 @@
|
|||
// the test suite.
|
||||
//
|
||||
// Zeek invocations specifying "-O use-C++" will activate any code compiled
|
||||
// into the zeek binary; otherwise, the code lies dormant. "-O force-use-C++"
|
||||
// does the same but generates warnings for script functions not found in
|
||||
// compiled in. This is useful for debugging the compiled code, to ensure
|
||||
// that it's indeed being run.
|
||||
// into the zeek binary; otherwise, the code lies dormant.
|
||||
//
|
||||
// "-O report-C++" reports on which compiled functions will/won't be used
|
||||
// (including ones that are available but not relevant to the scripts loaded
|
||||
// on the command line).
|
||||
// on the command line). This can be useful when debugging to make sure
|
||||
// that you're indeed running compiled code when you expect to be.
|
||||
//
|
||||
// We partition the methods of the compiler into a number of groups,
|
||||
// the definitions of each having their own source file:
|
||||
|
|
|
@ -80,18 +80,11 @@ event handler pulled in by `target.zeek` replaced with its compiled version.
|
|||
|
||||
Instead of the last line above, you can use the following variants:
|
||||
|
||||
5. `./src/zeek -O force-use-C++ target.zeek`
|
||||
Same as `use-C++`, but also
|
||||
warns about any `target.zeek` functions that didn't have corresponding
|
||||
compiled-to-C++ versions.
|
||||
|
||||
Or:
|
||||
|
||||
5. `./src/zeek -O report-C++ target.zeek`
|
||||
For each function body in
|
||||
`target.zeek`, reports which ones have compiled-to-C++ bodies available,
|
||||
and also any compiled-to-C++ bodies present in the `zeek` binary that
|
||||
`target.zeek` does not use.
|
||||
`target.zeek` does not use. Useful for debugging.
|
||||
|
||||
The above workflows require the subsequent `zeek` execution to include
|
||||
the `target.zeek` script. You can avoid this by replacing the first step with:
|
||||
|
|
|
@ -219,15 +219,10 @@ void analyze_scripts()
|
|||
analysis_options.gen_standalone_CPP);
|
||||
check_env_opt("ZEEK_REPORT_CPP", analysis_options.report_CPP);
|
||||
check_env_opt("ZEEK_USE_CPP", analysis_options.use_CPP);
|
||||
check_env_opt("ZEEK_FORCE_USE_CPP",
|
||||
analysis_options.force_use_CPP);
|
||||
|
||||
if ( analysis_options.gen_standalone_CPP )
|
||||
analysis_options.gen_CPP = true;
|
||||
|
||||
if ( analysis_options.force_use_CPP )
|
||||
analysis_options.use_CPP = true;
|
||||
|
||||
if ( analysis_options.gen_CPP )
|
||||
{
|
||||
if ( analysis_options.add_CPP )
|
||||
|
@ -372,74 +367,6 @@ void analyze_scripts()
|
|||
h->SetUsed();
|
||||
}
|
||||
}
|
||||
|
||||
else if ( analysis_options.force_use_CPP )
|
||||
reporter->Warning("no C++ available for %s", f.Func()->Name());
|
||||
}
|
||||
|
||||
// Now that we've loaded all of the compiled scripts
|
||||
// relevant for the AST, activate standalone ones.
|
||||
for ( auto cb : standalone_activations )
|
||||
(*cb)();
|
||||
}
|
||||
|
||||
if ( generating_CPP )
|
||||
{
|
||||
auto hm = std::make_unique<CPPHashManager>(hash_name.c_str(),
|
||||
analysis_options.add_CPP);
|
||||
|
||||
if ( ! analysis_options.gen_CPP )
|
||||
{
|
||||
for ( auto& func : funcs )
|
||||
{
|
||||
auto hash = func.Profile()->HashVal();
|
||||
if ( compiled_scripts.count(hash) > 0 ||
|
||||
hm->HasHash(hash) )
|
||||
func.SetSkip(true);
|
||||
}
|
||||
|
||||
// Now that we've presumably marked a lot of functions
|
||||
// as skippable, recompute the global profile.
|
||||
pfs = std::make_unique<ProfileFuncs>(funcs, is_CPP_compilable, false);
|
||||
}
|
||||
|
||||
CPPCompile cpp(funcs, *pfs, gen_name.c_str(), *hm,
|
||||
analysis_options.gen_CPP ||
|
||||
analysis_options.update_CPP,
|
||||
analysis_options.gen_standalone_CPP);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if ( analysis_options.use_CPP )
|
||||
{
|
||||
for ( auto& f : funcs )
|
||||
{
|
||||
auto hash = f.Profile()->HashVal();
|
||||
auto s = compiled_scripts.find(hash);
|
||||
|
||||
if ( s == compiled_scripts.end() )
|
||||
{ // Look for script-specific body.
|
||||
hash = script_specific_hash(f.Body(), hash);
|
||||
s = compiled_scripts.find(hash);
|
||||
}
|
||||
|
||||
if ( s != compiled_scripts.end() )
|
||||
{
|
||||
auto b = s->second.body;
|
||||
b->SetHash(hash);
|
||||
f.Func()->ReplaceBody(f.Body(), b);
|
||||
f.SetBody(b);
|
||||
|
||||
for ( auto& e : s->second.events )
|
||||
{
|
||||
auto h = event_registry->Register(e);
|
||||
h->SetUsed();
|
||||
}
|
||||
}
|
||||
|
||||
else if ( analysis_options.force_use_CPP )
|
||||
reporter->Warning("no C++ available for %s", f.Func()->Name());
|
||||
}
|
||||
|
||||
// Now that we've loaded all of the compiled scripts
|
||||
|
|
|
@ -61,9 +61,6 @@ struct AnalyOpt {
|
|||
// If true, use C++ bodies if available.
|
||||
bool use_CPP = false;
|
||||
|
||||
// Same, but complain about missing bodies.
|
||||
bool force_use_CPP = false;
|
||||
|
||||
// If true, report on available C++ bodies.
|
||||
bool report_CPP = false;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue