-let spec = [ "-c", Arg.Set(count_only), "counting only (don't materialize the result set)";
- "-t", Arg.Set(time), "print timing statistics";
- "-max-tc", Arg.Set_int(tc_threshold), "set maximum count for which the TextCollection is used";
- "-f", Arg.Set_int(sample_factor), "sample factor [default=64]";
- "-i", Arg.Set(index_empty_texts), "index empty texts [default=false]";
- "-d", Arg.Set(disable_text_collection), "disable text collection[default=false]";
- "-s", Arg.Set_string(save_file), "save the intermediate representation into file.srx";
- "-b", Arg.Set(bottom_up), "real bottom up run";
- "-nj", Arg.Set(no_jump), "disable jumping";
- "-index-type", Arg.Symbol ([ "default"; "swcsa"; "rlcsa" ], set_index_type),
- "choose text index type";
- "-v", Arg.Set(verbose), "verbose mode";
- ]
+let spec = Arg.align
+ [ "-c", Arg.Set(count_only),
+ " counting only (don't materialize the result set)";
+
+ "-f", Arg.Set_int(sample_factor),
+ "<n> sample factor [default=64]";
+
+ "-i", Arg.Set(index_empty_texts),
+ " index empty texts [default=false]";
+
+ "-d", Arg.Set(disable_text_collection),
+ " disable text collection[default=false]";
+
+ "-s", Arg.Set_string(save_file),
+ "<save_file> save the intermediate representation into file.srx";
+
+ "-b", Arg.Set(bottom_up), " real bottom up run";
+
+ "-nj", Arg.Set(no_jump), " disable jumping";
+
+ "-p", Arg.Set(do_perf), " dump perf counters (Linux only)";
+
+ "-index-type", Arg.Symbol ([ "default"; "swcsa"; "rlcsa" ],
+ set_index_type),
+ " choose text index type";
+
+ "-v", Arg.Set(verbose), " verbose mode"; ] @
+IFDEF TRACE
+THEN [
+ "-trace-file", Arg.Set_string(trace_file),
+ "<trace_file> save the full trace in dot format in <trace_file>"
+ ]
+ELSE []
+END
+