From 153ed5e5d9fabbe837b6506f33af496011dec3d9 Mon Sep 17 00:00:00 2001 From: Andrzej Kotulski Date: Fri, 13 Jan 2017 10:12:36 -0800 Subject: [PATCH] [Config] Rename Toplevel to Driver Summary: `Toplevel` name is confusing - in ocaml world it means interactive ocaml shell (we call that "interactive"). In infer it meant "Toplevel infer binary". We already call it "driver" to avoid confusion, let's rename the code as well. Reviewed By: jvillard Differential Revision: D4415111 fbshipit-source-id: 1002f27 --- infer/src/base/CommandLineOption.ml | 12 ++--- infer/src/base/CommandLineOption.mli | 2 +- infer/src/base/Config.ml | 74 ++++++++++++++-------------- infer/src/base/Logging.ml | 4 +- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/infer/src/base/CommandLineOption.ml b/infer/src/base/CommandLineOption.ml index d27011016..e27b255d2 100644 --- a/infer/src/base/CommandLineOption.ml +++ b/infer/src/base/CommandLineOption.ml @@ -17,15 +17,15 @@ module YBU = Yojson.Basic.Util (** Each command line option may appear in the --help list of any executable, these tags are used to specify which executables for which an option will be documented. *) -type exe = Analyze | Clang | Interactive | Print | Toplevel +type exe = Analyze | Clang | Driver | Interactive | Print (** Association list of executable (base)names to their [exe]s. *) let exes = [ ("InferAnalyze", Analyze); ("InferClang", Clang); + ("infer", Driver); ("InferPrint", Print); - ("infer", Toplevel); ("interactive", Interactive); ] @@ -624,12 +624,12 @@ let parse ?(incomplete=false) ?(accept_unknown=false) ?config_file current_exe e current exe *) (* reset the speclist between calls to this function *) curr_speclist := []; - if current_exe = Toplevel then - add_to_curr_speclist ~add_help:true ~header:"Toplevel options" current_exe + if current_exe = Driver then + add_to_curr_speclist ~add_help:true ~header:"Driver options" current_exe else add_to_curr_speclist ~add_help:true current_exe ; - if current_exe = Toplevel then ( + if current_exe = Driver then ( add_to_curr_speclist ~header:"Analysis (backend) options" Analyze; add_to_curr_speclist ~header:"Clang frontend options" Clang; ) @@ -648,7 +648,7 @@ let parse ?(incomplete=false) ?(accept_unknown=false) ?config_file current_exe e let exe_name = Sys.executable_name in let should_parse_cl_args = match current_exe with | Clang | Interactive -> false - | Analyze | Print | Toplevel -> true in + | Analyze | Print | Driver -> true in let env_cl_args = if should_parse_cl_args then prepend_to_argv env_args else env_args in diff --git a/infer/src/base/CommandLineOption.mli b/infer/src/base/CommandLineOption.mli index 8146c081b..6d9140032 100644 --- a/infer/src/base/CommandLineOption.mli +++ b/infer/src/base/CommandLineOption.mli @@ -11,7 +11,7 @@ open! IStd -type exe = Analyze | Clang | Interactive | Print | Toplevel +type exe = Analyze | Clang | Driver | Interactive | Print (** Association list of executable (base)names to their [exe]s. *) val exes : (string * exe) list diff --git a/infer/src/base/Config.ml b/infer/src/base/Config.ml index 15e82bead..077b931c2 100644 --- a/infer/src/base/Config.ml +++ b/infer/src/base/Config.ml @@ -240,7 +240,7 @@ let real_exe_name = let current_exe = if !Sys.interactive then CLOpt.Interactive else try IList.assoc String.equal (Filename.basename real_exe_name) CLOpt.exes - with Not_found -> CLOpt.Toplevel + with Not_found -> CLOpt.Driver let bin_dir = Filename.dirname real_exe_name @@ -320,7 +320,7 @@ let inferconfig_home = and project_root = CLOpt.mk_path ~deprecated:["project_root"; "-project_root"] ~long:"project-root" ~short:"pr" ~default:init_work_dir - ~exes:CLOpt.[Analyze;Clang;Print;Toplevel] + ~exes:CLOpt.[Analyze;Clang;Driver;Print] ~meta:"dir" "Specify the root directory of the project" (* Parse the phase 1 options, ignoring the rest *) @@ -405,7 +405,7 @@ and ( ignore ( let long = "-" ^ suffix in CLOpt.mk_string_list ~long ~meta ~f:(fun _ -> raise (Arg.Bad "invalid option")) - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] help ); IList.map (fun (name, analyzer) -> (analyzer, mk_option name)) string_to_analyzer in @@ -445,7 +445,7 @@ and analyzer = | Capture | Compile | Infer | Eradicate | Checkers | Tracing | Crashcontext | Linters | Quandary | Threadsafety -> () in CLOpt.mk_symbol_opt ~deprecated:["analyzer"] ~long:"analyzer" ~short:"a" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Specify which analyzer to run (only one at a time is supported):\n\ - infer, eradicate, checkers, quandary, threadsafety: run the specified analysis\n\ - capture: run capture phase only (no analysis)\n\ @@ -475,13 +475,13 @@ and ast_file = and blacklist = CLOpt.mk_string_opt ~deprecated:["-blacklist-regex";"-blacklist"] ~long:"buck-blacklist" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] ~meta:"regex" "Skip analysis of files matched by the specified regular expression (Buck \ flavors only)" and bootclasspath = CLOpt.mk_string_opt ~long:"bootclasspath" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Specify the Java bootclasspath" (** Automatically set when running from within Buck *) @@ -491,49 +491,49 @@ and buck = and buck_build_args = CLOpt.mk_string_list ~long:"Xbuck" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Pass values as command-line arguments to invocations of `buck build` (Buck flavors only)" and buck_out = CLOpt.mk_path_opt ~long:"buck-out" - ~exes:CLOpt.[Toplevel] ~meta:"dir" "Specify the root directory of buck-out" + ~exes:CLOpt.[Driver] ~meta:"dir" "Specify the root directory of buck-out" and bugs_csv = CLOpt.mk_path_opt ~deprecated:["bugs"] ~long:"issues-csv" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write a list of issues in CSV format to a file" and bugs_json = CLOpt.mk_path_opt ~deprecated:["bugs_json"] ~long:"issues-json" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write a list of issues in JSON format to a file" and bugs_tests = CLOpt.mk_path_opt ~long:"issues-tests" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write a list of issues in a format suitable for tests to a file" and bugs_txt = CLOpt.mk_path_opt ~deprecated:["bugs_txt"] ~long:"issues-txt" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write a list of issues in TXT format to a file" and bugs_xml = CLOpt.mk_path_opt ~deprecated:["bugs_xml"] ~long:"issues-xml" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write a list of issues in XML format to a file" and calls_csv = CLOpt.mk_path_opt ~deprecated:["calls"] ~long:"calls-csv" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] ~meta:"file" "Write individual calls in CSV format to a file" and changed_files_index = - CLOpt.mk_path_opt ~long:"changed-files-index" ~exes:CLOpt.[Toplevel] ~meta:"file" + CLOpt.mk_path_opt ~long:"changed-files-index" ~exes:CLOpt.[Driver] ~meta:"file" "Specify the file containing the list of source files from which reactive analysis should \ start. Source files should be specified relative to project root or be absolute" @@ -604,7 +604,7 @@ and cluster = and compute_analytics = CLOpt.mk_bool ~long:"compute-analytics" ~default:false - ~exes:CLOpt.[Toplevel;Clang] + ~exes:CLOpt.[Clang;Driver] "Emit analytics as info-level issues, like component kit line count and \ component kit file cyclomatic complexity" @@ -612,7 +612,7 @@ and compute_analytics = If a procedure was changed beforehand, keep the changed marking. *) and continue = CLOpt.mk_bool ~deprecated:["continue"] ~long:"continue" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Continue the capture for the reactive analysis, increasing the changed files/procedures. (If \ a procedure was changed beforehand, keep the changed marking.)" @@ -646,7 +646,7 @@ and ( and filtering = CLOpt.mk_bool ~long:"filtering" ~short:"f" ~default:true - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Do not show the results from experimental checks (note: some of them may contain many false \ alarms)" @@ -716,7 +716,7 @@ and dependencies = and disable_checks = CLOpt.mk_string_list ~deprecated:["disable_checks"] ~long:"disable-checks" ~meta:"error name" - ~exes:CLOpt.[Toplevel;Print] + ~exes:CLOpt.[Driver;Print] "Do not show reports coming from this type of errors" and dotty_cfg_libs = @@ -778,7 +778,7 @@ and err_file = and fail_on_bug = CLOpt.mk_bool ~deprecated:["-fail-on-bug"] ~long:"fail-on-issue" ~default:false - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] (Printf.sprintf "Exit with error code %d if Infer found something to report" fail_on_issue_exit_code) @@ -800,7 +800,7 @@ and filter_paths = and flavors = CLOpt.mk_bool ~deprecated:["-use-flavors"] ~long:"flavors" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Buck integration using Buck flavors (clang only), eg `infer --flavors -- buck build \ //foo:bar#infer`" @@ -827,7 +827,7 @@ and frontend_tests = and generated_classes = CLOpt.mk_path_opt ~long:"generated-classes" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Specify where to load the generated class files" and headers = @@ -845,7 +845,7 @@ and infer_cache = ~meta:"dir" "Select a directory to contain the infer cache (Buck and Java only)" and iphoneos_target_sdk_version = - CLOpt.mk_string_opt ~long:"iphoneos-target-sdk-version" ~exes:CLOpt.[Toplevel;Clang] + CLOpt.mk_string_opt ~long:"iphoneos-target-sdk-version" ~exes:CLOpt.[Clang;Driver] "Specify the target SDK version to use for iphoneos" and iterations = @@ -861,7 +861,7 @@ and java_jar_compiler = and jobs = CLOpt.mk_int ~deprecated:["-multicore"] ~long:"jobs" ~short:"j" ~default:ncpu - ~exes:CLOpt.[Toplevel] ~meta:"int" "Run the specified number of analysis jobs simultaneously" + ~exes:CLOpt.[Driver] ~meta:"int" "Run the specified number of analysis jobs simultaneously" and join_cond = CLOpt.mk_int ~deprecated:["join_cond"] ~long:"join-cond" ~default:1 @@ -881,7 +881,7 @@ and linters_def_file = and load_average = CLOpt.mk_float_opt ~long:"load-average" ~short:"l" - ~exes:CLOpt.[Toplevel] ~meta:"float" + ~exes:CLOpt.[Driver] ~meta:"float" "Do not start new parallel jobs if the load average is greater than that specified (Buck and \ make only)" @@ -901,7 +901,7 @@ and margin = and merge = CLOpt.mk_bool ~deprecated:["merge"] ~long:"merge" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Merge the captured results directories specified in the dependency file (Buck flavors only)" and ml_buckets = @@ -965,7 +965,7 @@ and patterns_skip_translation = and pmd_xml = CLOpt.mk_bool ~long:"pmd-xml" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Output issues in (PMD) XML format" and precondition_stats = @@ -973,7 +973,7 @@ and precondition_stats = "Print stats about preconditions to standard output" and print_logs = - CLOpt.mk_bool ~long:"print-logs" ~exes:CLOpt.[Toplevel] + CLOpt.mk_bool ~long:"print-logs" ~exes:CLOpt.[Driver] "Also log messages to stdout and stderr" and print_builtins = @@ -1001,7 +1001,7 @@ and procs_xml = and progress_bar = CLOpt.mk_bool ~deprecated_no:["no_progress_bar"] ~long:"progress-bar" ~short:"pb" ~default:true - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Show a progress bar" and quiet = @@ -1036,7 +1036,7 @@ and report_hook = and results_dir = CLOpt.mk_path ~deprecated:["results_dir"; "-out"] ~long:"results-dir" ~short:"o" ~default:(init_work_dir ^/ "infer-out") - ~exes:CLOpt.[Toplevel;Analyze;Clang;Print] + ~exes:CLOpt.[Analyze;Clang;Driver;Print] ~meta:"dir" "Write results and internal files in the specified directory" and save_results = @@ -1104,13 +1104,13 @@ and specs_library = specs_library and stacktrace = - CLOpt.mk_path_opt ~long:"stacktrace" ~short:"st" ~exes:CLOpt.[Toplevel] + CLOpt.mk_path_opt ~long:"stacktrace" ~short:"st" ~exes:CLOpt.[Driver] ~meta:"file" "File path containing a json-encoded Java crash stacktrace. Used to guide the \ analysis (only with '-a crashcontext'). See \ tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format." and stacktraces_dir = - CLOpt.mk_path_opt ~long:"stacktraces-dir" ~exes:CLOpt.[Toplevel] + CLOpt.mk_path_opt ~long:"stacktraces-dir" ~exes:CLOpt.[Driver] ~meta:"dir" "Directory path containing multiple json-encoded Java crash stacktraces. \ Used to guide the analysis (only with '-a crashcontext'). See \ tests/codetoanalyze/java/crashcontext/*.json for examples of the expected format." @@ -1177,7 +1177,7 @@ and verbose_out = and version = let var = ref `None in CLOpt.mk_set var `Full ~deprecated:["version"] ~long:"version" - ~exes:CLOpt.[Toplevel;Analyze;Clang;Print] + ~exes:CLOpt.[Analyze;Clang;Driver;Print] "Print version information and exit" ; CLOpt.mk_set var `Json ~deprecated:["version_json"] ~long:"version-json" ~exes:CLOpt.[Analyze;Clang;Print] @@ -1207,13 +1207,13 @@ and worklist_mode = and xcode_developer_dir = CLOpt.mk_path_opt ~long:"xcode-developer-dir" - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] ~meta:"XCODE_DEVELOPER_DIR" "Specify the path to Xcode developer directory (Buck flavors only)" and xcpretty = CLOpt.mk_bool ~long:"xcpretty" ~default:true - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Infer will use xcpretty together with xcodebuild to analyze an iOS app. xcpretty just needs \ to be in the path, infer command is still just infer -- . (Recommended)" @@ -1249,7 +1249,7 @@ let rest = ) in let version_spec = Arg.Unit (fun () -> version := `Javac) in CLOpt.mk_subcommand - ~exes:CLOpt.[Toplevel] + ~exes:CLOpt.[Driver] "Stop argument processing, use remaining arguments as a build command" (fun build_exe -> match Filename.basename build_exe with @@ -1282,7 +1282,7 @@ let exe_usage (exe : CLOpt.exe) = To process all the .specs in the current directory, pass . as only parameter \ To process all the .specs in the results directory, use option --results-dir \ Each spec is printed to standard output unless option -q is used." - | Toplevel -> + | Driver -> version_string let post_parsing_initialization () = diff --git a/infer/src/base/Logging.ml b/infer/src/base/Logging.ml index ccc0331c5..c97c3ee3c 100644 --- a/infer/src/base/Logging.ml +++ b/infer/src/base/Logging.ml @@ -33,9 +33,9 @@ let log_dir_of_exe (exe : CLOpt.exe) = match exe with | Analyze -> "analyze" | Clang -> "clang" + | Driver -> "driver" | Interactive -> "interactive" | Print -> "print" - | Toplevel -> "toplevel" let stdout_err_log_files = (((lazy F.std_formatter), (lazy Pervasives.stdout), @@ -83,7 +83,7 @@ let create_log_file exe name_prefix outerr = let should_setup_log_files (exe : CLOpt.exe) = match exe with | Analyze | Clang -> Config.debug_mode || Config.stats_mode - | Toplevel -> true + | Driver -> true | _ -> false let create_outerr_log_files exe prefix_opt =