X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=src%2Foptions.ml;h=1975212009012c7cc4f3236ebf4386bc71c90184;hb=d31315cfd8d95205dc0debf430bfa7ce762d9974;hp=70d702d665347cf73fb77bf1da759af20f6cef6e;hpb=43906e89a76c67491e2a567990980df787036088;p=SXSI%2Fxpathcomp.git diff --git a/src/options.ml b/src/options.ml index 70d702d..1975212 100644 --- a/src/options.ml +++ b/src/options.ml @@ -1,7 +1,7 @@ open Utils open Format -let index_empty_texts = ref false +let index_empty_texts = ref true let sample_factor = ref 64 let disable_text_collection = ref false let tc_threshold = ref 60000 @@ -14,13 +14,13 @@ let count_only = ref false let time = ref false let bottom_up = ref false let no_jump = ref false +let no_cache = ref false let verbose = ref false let text_index_type = ref 0 let do_perf = ref false - -(* Only valid if compiled with -DTRACE *) -let trace_file = ref "trace.dot" - +let twopass = ref false +let repeat = ref 1 +let docstats = ref false let set_index_type = function | "default" -> text_index_type := 0 @@ -38,36 +38,39 @@ let anon_fun = | 2 -> output_file := Some s; incr pos | _ -> raise (Arg.Bad(s)) -let set_tracer s = +let set_logger s = List.iter (fun t -> if t = "" then () else match String.explode t ':' with [ tr; lvl ] -> let l = try int_of_string lvl with _ -> raise (Arg.Bad (lvl)) in - if Tracer.is_tracer tr then Tracer.activate tr l + if Logger.is_logger tr then Logger.activate tr l else raise (Arg.Bad (t)) | _ -> raise (Arg.Bad (t)) ) (String.explode s ',') -let pretty_tracers () = +let pretty_loggers () = ignore(flush_str_formatter()); Pretty.print_list ~sep:", " (fun f s -> fprintf f "%s" s) str_formatter - (Tracer.available ()); + (Logger.available ()); flush_str_formatter () let spec = Arg.align [ "-c", Arg.Set(count_only), " counting only (don't materialize the result set)"; + "-two", Arg.Set(twopass), + " Use twopass algorithm"; + "-f", Arg.Set_int(sample_factor), " sample factor [default=64]"; - "-i", Arg.Set(index_empty_texts), - " index empty texts [default=false]"; + "-ne", Arg.Clear(index_empty_texts), + " don't index empty texts [default=index]"; "-d", Arg.Set(disable_text_collection), " disable text collection[default=false]"; @@ -79,20 +82,28 @@ let spec = Arg.align "-nj", Arg.Set(no_jump), " disable jumping"; + "-nc", Arg.Set(no_cache), " disable caching"; + + "-p", Arg.Set(do_perf), " dump perf counters (Linux only)"; "-index-type", Arg.Symbol ([ "default"; "swcsa"; "rlcsa" ], - set_index_type), + set_index_type), " choose text index type"; + "-r", Arg.Set_int(repeat), + " repeat query execution n time (benchmarking only, default 1)"; + + "-doc-stats", Arg.Set(docstats), + " Compute document statistics (performs full traversal)"; + + "-v", Arg.Set(verbose), " verbose mode"; ] @ IFNDEF NTRACE THEN [ - "-trace-file", Arg.Set_string(trace_file), - " save the full trace in dot format in "; - "-trace", Arg.String (set_tracer), - " enable tracing with the specified level. Valid tracers are: " - ^ (pretty_tracers ()) + "-log", Arg.String (set_logger), + " enable logging with the specified level. Valid loggers are: " + ^ (pretty_loggers ()) ] ELSE [] END