[m-rev.] for review: "Did you mean ..." mesages for long options
Julien Fischer
jfischer at opturion.com
Sat Apr 13 00:31:56 AEST 2024
Hi,
Does anyone intend to review this one?
Julien.
On Sat, 6 Apr 2024, Julien Fischer wrote:
>
> "Did you mean ..." messages for long options.
>
> Generate "Did you mean ..." messages for unrecognized long options.
> For example:
>
> unrecognized option `--no-half-at-wrn'.
> (Did you mean `--no-halt-at-warn'?)
>
> compiler/mercury_compile_main.m:
> If we have an unrecognized long option or negated long option,
> then attempt to generate a "Did you mean ..." message for it.
>
> compiler/error_spec.m:
> Add a version of maybe_construct_did_you_mean_pieces that lets
> you add prefix to the strings before including them in the pieces.
> This is required for handling the "--" and "--no-" long option
> prefixes. Both versions of maybe_construct_did_you_mean pieces
> are implemented using the same underlying piece of code.
>
> compiler/options.m:
> Add predicates for returning the set of all long options and all
> negatable
> long options. To make this possible, shift the long option table into a
> new predicate and add an (out, out) is multi mode for it.
>
> library/getopt.m:
> Update the documentation to include maybe_string_special options
> among the option types that are negatable.
>
> Julien.
>
> diff --git a/compiler/error_spec.m b/compiler/error_spec.m
> index a012667..173b1a1 100644
> --- a/compiler/error_spec.m
> +++ b/compiler/error_spec.m
> @@ -626,6 +626,9 @@
> :- pred maybe_construct_did_you_mean_pieces(string::in, list(string)::in,
> list(format_piece)::out) is det.
>
> +:- pred maybe_construct_prefixed_did_you_mean_pieces(string::in, string::in,
> + list(string)::in, list(format_piece)::out) is det.
> +
> % ---------------------------------------------------------------------------%
>
> :- pred extract_spec_phase(error_spec::in, error_phase::out) is det.
> @@ -647,6 +650,7 @@
> :- import_module edit_distance.
> :- import_module getopt.
> :- import_module require.
> +:- import_module std_util.
> :- import_module string.
> :- import_module term_context.
> :- import_module uint.
> @@ -775,6 +779,19 @@ add_quotes(Str) = "`" ++ Str ++ "'".
>
> maybe_construct_did_you_mean_pieces(BaseName, CandidateNames,
> DidYouMeanPieces) :-
> + do_maybe_construct_did_you_mean_pieces(BaseName, CandidateNames,
> + std_util.id, DidYouMeanPieces).
> +
> +maybe_construct_prefixed_did_you_mean_pieces(Prefix, BaseName,
> CandidateNames,
> + DidYouMeanPieces) :-
> + do_maybe_construct_did_you_mean_pieces(BaseName, CandidateNames,
> + add_prefix(Prefix), DidYouMeanPieces).
> +
> +:- pred do_maybe_construct_did_you_mean_pieces(string::in, list(string)::in,
> + (func(string) = string)::in, list(format_piece)::out) is det.
> +
> +do_maybe_construct_did_you_mean_pieces(BaseName, CandidateNames,
> + TransformFunc, DidYouMeanPieces) :-
> % Note: name_is_close_enough below depends on all costs here
> % except for case changes being 2u.
> Params = edit_params(2u, 2u, case_sensitive_replacement_cost, 2u),
> @@ -824,12 +841,13 @@ maybe_construct_did_you_mean_pieces(BaseName,
> CandidateNames,
> SuggestedNames0, NonSuggestedNames),
> (
> NonSuggestedNames = [],
> - SuggestedNames = SuggestedNames0
> + SuggestedNames = list.map(TransformFunc, SuggestedNames0)
> ;
> NonSuggestedNames = [_ | _],
> % This should cause the message we create below
> % to end with "or `...'?".
> - SuggestedNames = SuggestedNames0 ++ ["..."]
> + SuggestedNames =
> + list.map(TransformFunc, SuggestedNames0) ++ ["..."]
> ) ,
> SuggestionPieces = list_to_quoted_pieces_or(SuggestedNames),
> DidYouMeanPieces =
> @@ -839,6 +857,12 @@ maybe_construct_did_you_mean_pieces(BaseName,
> CandidateNames,
> DidYouMeanPieces = []
> ) .
>
> + % Add to stdlib? string.append has wrong mode for list map.
> + %
> +:- func add_prefix(string, string) = string.
> +
> +add_prefix(Prefix, String) = Prefix ++ String.
> +
> :- pred name_is_close_enough(uint::in, string::in, uint::in, string::in)
> is semidet.
>
> diff --git a/compiler/mercury_compile_main.m
> b/compiler/mercury_compile_main.m
> index 08325be..a58eaf2 100644
> --- a/compiler/mercury_compile_main.m
> +++ b/compiler/mercury_compile_main.m
> @@ -392,10 +392,8 @@ process_options_std(ProgressStream, ErrorStream,
> DefaultOptionTable,
> DefaultOptionTable, ArgsOptionTable, cord.init, _UserData, !IO),
> (
> MaybeError = yes(OptionError),
> - OptionErrorStr = option_error_to_string(OptionError),
> - Spec = simplest_no_context_spec($pred, severity_error,
> - phase_options, [words(OptionErrorStr), suffix("."), nl]),
> - Result = opr_failure([Spec])
> + Specs = make_option_error(OptionError),
> + Result = opr_failure(Specs)
> ;
> MaybeError = no,
> getopt.lookup_accumulating_option(ArgsOptionTable,
> @@ -576,6 +574,45 @@ maybe_dump_options_file(OutStream, ArgsOptionTable,
> OptionsVariables, !IO) :-
>
> % ---------------------------------------------------------------------------%
>
> +:- func make_option_error(option_error(option)) = list(error_spec).
> +
> +make_option_error(OptionError) = Specs :-
> + OptionErrorStr = option_error_to_string(OptionError),
> + ( if
> + OptionError = unrecognized_option(OptionStr),
> + ( if string.remove_prefix("--no-", OptionStr, BaseOptionStr0) then
> + IsNegatedOption = yes,
> + BaseOptionStr = BaseOptionStr0
> + else if string.remove_prefix("--", OptionStr, BaseOptionStr0) then
> + IsNegatedOption = no,
> + BaseOptionStr = BaseOptionStr0
> + else
> + false
> + ),
> + not is_empty(BaseOptionStr)
> + then
> + (
> + IsNegatedOption = yes,
> + Prefix = "--no-",
> + all_negatable_long_option_strings(OptionStrs)
> + ;
> + IsNegatedOption = no,
> + Prefix = "--",
> + all_long_option_strings(OptionStrs)
> + ),
> + maybe_construct_prefixed_did_you_mean_pieces(Prefix, BaseOptionStr,
> + OptionStrs, DidYouMeanPieces0),
> + DidYouMeanPieces = [nl_indent_delta(-1) | DidYouMeanPieces0]
> + else
> + DidYouMeanPieces = []
> + ),
> + Spec = simplest_no_context_spec($pred, severity_error,
> + phase_options,
> + [words(OptionErrorStr), suffix("."), nl | DidYouMeanPieces]),
> + Specs = [Spec].
> +
> +%---------------------------------------------------------------------------%
> +
> main_for_make(ProgressStream, ErrorStream, Globals, Args, !IO) :-
> DetectedGradeFlags = [],
> io.environment.get_environment_var_map(EnvVarMap, !IO),
> diff --git a/compiler/options.m b/compiler/options.m
> index 20f91eb..cd2962e 100644
> --- a/compiler/options.m
> +++ b/compiler/options.m
> @@ -36,7 +36,7 @@
> % option is a style warning option, in the second that handles
> % inhibit_style_warnings.
> %
> -% - Every option should have a clause in the long_options predicate
> +% - Every option should have a clause in the long_option_table predicate
> % that converts the user-visible name of the option into its internal
> % representation as a value in the options type. For options whose names
> % include words that whose spelling differs in American vs British
> % English,
> @@ -78,6 +78,16 @@
> :- pred short_option(char::in, option::out) is semidet.
> :- pred long_option(string::in, option::out) is semidet.
>
> + % Return the list of all long option strings excluding the "--"
> + % or "--no-" prefixes.
> + %
> +:- pred all_long_option_strings(list(string)::out) is det.
> +
> + % Return the list of all long options strings that can be preceded
> + % with the "--no-" prefix. The strings do not include the prefix.
> + %
> +:- pred all_negatable_long_option_strings(list(string)::out) is det.
> +
> % special_handler(Option, ValueForThatOption, OptionTableIn,
> % MaybeOptionTableOut):
> %
> @@ -154,7 +164,7 @@
> %
> % - in this definition of the `option' type
> % - in the clauses of the `optdef' predicate
> - % - in the clauses of `long_option' predicate
> + % - in the clauses of `long_option_table' predicate
> % (not in the clauses of the `short_option' predicate, since
> % that is sorted alphabetically on the option letter)
> % - in the special_handler predicate, if they appear there
> @@ -2146,1136 +2156,1223 @@ short_option('w', inhibit_warnings).
> short_option('x', only_opmode_make_xml_documentation).
> short_option('?', help).
>
> +long_option(String, Option) :-
> + long_option_table(String, Option).
> +
> +all_long_option_strings(OptionStrings) :-
> + Pred = (pred(OptionString::out) is multi :-
> + long_option_table(OptionString, _)
> + ),
> + solutions(Pred, OptionStrings).
> +
> +all_negatable_long_option_strings(OptionStrings) :-
> + Pred = (pred(OptionString::out) is nondet :-
> + long_option_table(OptionString, Option),
> + optdef(_, Option, OptionData),
> + ( OptionData = bool(_)
> + ; OptionData = maybe_int(_)
> + ; OptionData = maybe_string(_)
> + ; OptionData = accumulating(_)
> + ; OptionData = bool_special
> + ; OptionData = maybe_string_special
> + )
> + ),
> + solutions(Pred, OptionStrings).
> +
> +:- pred long_option_table(string, option).
> +:- mode long_option_table(in, out) is semidet.
> +:- mode long_option_table(out, out) is multi.
> +
> % warning options
> -long_option("inhibit-warnings", inhibit_warnings).
> -long_option("inhibit-style-warnings", inhibit_style_warnings).
> -long_option("warn-accumulator-swaps", warn_accumulator_swaps).
> -long_option("halt-at-warn", halt_at_warn).
> -long_option("halt-at-warn-make-int", halt_at_warn_make_int).
> -long_option("halt-at-warn-make-interface", halt_at_warn_make_int).
> -long_option("halt-at-warn-make-opt", halt_at_warn_make_opt).
> -long_option("halt-at-syntax-errors", halt_at_syntax_errors).
> -long_option("halt-at-auto-parallel-failure", halt_at_auto_parallel_failure).
> -long_option("halt-at-invalid-interface", halt_at_invalid_interface).
> -long_option("warn-singleton-variables", warn_singleton_vars).
> -long_option("warn-singleton-vars", warn_singleton_vars).
> -long_option("warn-overlapping-scopes", warn_overlapping_scopes).
> -long_option("warn-det-decls-too-lax", warn_det_decls_too_lax).
> -long_option("warn-inferred-erroneous", warn_inferred_erroneous).
> -long_option("warn-nothing-exported", warn_nothing_exported).
> -long_option("warn-unused-args", warn_unused_args).
> -long_option("warn-interface-imports", warn_interface_imports).
> -long_option("warn-interface-imports-in-parents",
> +long_option_table("inhibit-warnings", inhibit_warnings).
> +long_option_table("inhibit-style-warnings", inhibit_style_warnings).
> +long_option_table("warn-accumulator-swaps", warn_accumulator_swaps).
> +long_option_table("halt-at-warn", halt_at_warn).
> +long_option_table("halt-at-warn-make-int", halt_at_warn_make_int).
> +long_option_table("halt-at-warn-make-interface", halt_at_warn_make_int).
> +long_option_table("halt-at-warn-make-opt", halt_at_warn_make_opt).
> +long_option_table("halt-at-syntax-errors", halt_at_syntax_errors).
> +long_option_table("halt-at-auto-parallel-failure",
> + halt_at_auto_parallel_failure).
> +long_option_table("halt-at-invalid-interface",
> halt_at_invalid_interface).
> +long_option_table("warn-singleton-variables", warn_singleton_vars).
> +long_option_table("warn-singleton-vars", warn_singleton_vars).
> +long_option_table("warn-overlapping-scopes", warn_overlapping_scopes).
> +long_option_table("warn-det-decls-too-lax", warn_det_decls_too_lax).
> +long_option_table("warn-inferred-erroneous", warn_inferred_erroneous).
> +long_option_table("warn-nothing-exported", warn_nothing_exported).
> +long_option_table("warn-unused-args", warn_unused_args).
> +long_option_table("warn-interface-imports", warn_interface_imports).
> +long_option_table("warn-interface-imports-in-parents",
> warn_interface_imports_in_parents).
> -long_option("warn-inconsistent-pred-order",
> +long_option_table("warn-inconsistent-pred-order",
> warn_inconsistent_pred_order_clauses).
> -long_option("warn-inconsistent-pred-order-clauses",
> +long_option_table("warn-inconsistent-pred-order-clauses",
> warn_inconsistent_pred_order_clauses).
> -long_option("warn-inconsistent-pred-order-foreign-procs",
> +long_option_table("warn-inconsistent-pred-order-foreign-procs",
> warn_inconsistent_pred_order_foreign_procs).
> -long_option("warn-non-contiguous-decls", warn_non_contiguous_decls).
> -long_option("warn-non-contiguous-clauses", warn_non_contiguous_clauses).
> -long_option("warn-non-contiguous-foreign-procs",
> +long_option_table("warn-non-contiguous-decls",
> warn_non_contiguous_decls).
> +long_option_table("warn-non-contiguous-clauses",
> warn_non_contiguous_clauses).
> +long_option_table("warn-non-contiguous-foreign-procs",
> warn_non_contiguous_foreign_procs).
> -long_option("warn-non-stratification", warn_non_stratification).
> -long_option("warn-missing-opt-files", warn_missing_opt_files).
> -long_option("warn-missing-trans-opt-files", warn_missing_trans_opt_files).
> -long_option("warn-missing-trans-opt-deps", warn_missing_trans_opt_deps).
> -long_option("warn-unification-cannot-succeed",
> +long_option_table("warn-non-stratification", warn_non_stratification).
> +long_option_table("warn-missing-opt-files", warn_missing_opt_files).
> +long_option_table("warn-missing-trans-opt-files",
> + warn_missing_trans_opt_files).
> +long_option_table("warn-missing-trans-opt-deps",
> warn_missing_trans_opt_deps).
> +long_option_table("warn-unification-cannot-succeed",
> warn_unification_cannot_succeed).
> -long_option("warn-simple-code", warn_simple_code).
> -long_option("warn-duplicate-calls", warn_duplicate_calls).
> -long_option("warn-implicit-stream-calls", warn_implicit_stream_calls).
> -long_option("warn-missing-module-name", warn_missing_module_name).
> -long_option("warn-wrong-module-name", warn_wrong_module_name).
> -long_option("warn-smart-recompilation", warn_smart_recompilation).
> -long_option("warn-undefined-options-variables",
> +long_option_table("warn-simple-code", warn_simple_code).
> +long_option_table("warn-duplicate-calls", warn_duplicate_calls).
> +long_option_table("warn-implicit-stream-calls",
> warn_implicit_stream_calls).
> +long_option_table("warn-missing-module-name", warn_missing_module_name).
> +long_option_table("warn-wrong-module-name", warn_wrong_module_name).
> +long_option_table("warn-smart-recompilation", warn_smart_recompilation).
> +long_option_table("warn-undefined-options-variables",
> warn_undefined_options_variables).
> -long_option("warn-undefined-options-vars",
> +long_option_table("warn-undefined-options-vars",
> warn_undefined_options_variables).
> -long_option("warn-suspicious-recursion", warn_suspicious_recursion).
> -long_option("warn-non-tail-recursion-self",
> +long_option_table("warn-suspicious-recursion", warn_suspicious_recursion).
> +long_option_table("warn-non-tail-recursion-self",
> warn_non_tail_recursion_self).
> -long_option("warn-non-tail-recursion-mutual",
> +long_option_table("warn-non-tail-recursion-mutual",
> warn_non_tail_recursion_mutual).
> -long_option("warn-non-tail-recursion", warn_non_tail_recursion).
> -long_option("warn-obvious-non-tail-recursion",
> +long_option_table("warn-non-tail-recursion", warn_non_tail_recursion).
> +long_option_table("warn-obvious-non-tail-recursion",
> warn_obvious_non_tail_recursion).
> -long_option("warn-target-code", warn_target_code).
> -long_option("warn-up-to-date", warn_up_to_date).
> -long_option("warn-stubs", warn_stubs).
> -long_option("warn-dead-procs", warn_dead_procs).
> -long_option("warn-dead-procedures", warn_dead_procs).
> -long_option("warn-dead-preds", warn_dead_preds).
> -long_option("warn-dead-predicates", warn_dead_preds).
> -long_option("warn-table-with-inline", warn_table_with_inline).
> -long_option("warn-non-term-special-preds", warn_non_term_special_preds).
> -long_option("warn-known-bad-format-calls", warn_known_bad_format_calls).
> -long_option("warn-only-one-format-string-error",
> +long_option_table("warn-target-code", warn_target_code).
> +long_option_table("warn-up-to-date", warn_up_to_date).
> +long_option_table("warn-stubs", warn_stubs).
> +long_option_table("warn-dead-procs", warn_dead_procs).
> +long_option_table("warn-dead-procedures", warn_dead_procs).
> +long_option_table("warn-dead-preds", warn_dead_preds).
> +long_option_table("warn-dead-predicates", warn_dead_preds).
> +long_option_table("warn-table-with-inline", warn_table_with_inline).
> +long_option_table("warn-non-term-special-preds",
> warn_non_term_special_preds).
> +long_option_table("warn-known-bad-format-calls",
> warn_known_bad_format_calls).
> +long_option_table("warn-only-one-format-string-error",
> warn_only_one_format_string_error).
> -long_option("warn-unknown-format-calls", warn_unknown_format_calls).
> -long_option("warn-obsolete", warn_obsolete).
> -long_option("warn-insts-without-matching-type",
> - warn_insts_without_matching_type).
> -long_option("warn-insts-with-functors-without-type",
> +long_option_table("warn-unknown-format-calls", warn_unknown_format_calls).
> +long_option_table("warn-obsolete", warn_obsolete).
> +long_option_table("warn-insts-without-matching-type",
> + warn_insts_without_matching_type).
> +long_option_table("warn-insts-with-functors-without-type",
> warn_insts_with_functors_without_type).
> -long_option("warn-unused-imports", warn_unused_imports).
> -long_option("warn-unused-interface-imports",
> warn_unused_interface_imports).
> -long_option("inform-ite-instead-of-switch", inform_ite_instead_of_switch).
> -long_option("inform-incomplete-switch", inform_incomplete_switch).
> -long_option("inform-incomplete-switch-threshold",
> +long_option_table("warn-unused-imports", warn_unused_imports).
> +long_option_table("warn-unused-interface-imports",
> + warn_unused_interface_imports).
> +long_option_table("inform-ite-instead-of-switch",
> + inform_ite_instead_of_switch).
> +long_option_table("inform-incomplete-switch", inform_incomplete_switch).
> +long_option_table("inform-incomplete-switch-threshold",
> inform_incomplete_switch_threshold).
> -long_option("warn-unresolved-polymorphism", warn_unresolved_polymorphism).
> -long_option("warn-suspicious-foreign-procs", warn_suspicious_foreign_procs).
> -long_option("warn-suspicious-foreign-code", warn_suspicious_foreign_code).
> -long_option("warn-state-var-shadowing", warn_state_var_shadowing).
> -long_option("warn-unneeded-mode-specific-clause",
> +long_option_table("warn-unresolved-polymorphism",
> + warn_unresolved_polymorphism).
> +long_option_table("warn-suspicious-foreign-procs",
> + warn_suspicious_foreign_procs).
> +long_option_table("warn-suspicious-foreign-code",
> + warn_suspicious_foreign_code).
> +long_option_table("warn-state-var-shadowing", warn_state_var_shadowing).
> +long_option_table("warn-unneeded-mode-specific-clause",
> warn_unneeded_mode_specific_clause).
> -long_option("warn-suspected-occurs-failure",
> +long_option_table("warn-suspected-occurs-failure",
> warn_suspected_occurs_check_failure).
> -long_option("warn-suspected-occurs-check-failure",
> +long_option_table("warn-suspected-occurs-check-failure",
> warn_suspected_occurs_check_failure).
> -long_option("warn-potentially-ambiguous-pragma",
> +long_option_table("warn-potentially-ambiguous-pragma",
> warn_potentially_ambiguous_pragma).
> -long_option("warn-potentially-ambiguous-pragmas",
> +long_option_table("warn-potentially-ambiguous-pragmas",
> warn_potentially_ambiguous_pragma).
> -long_option("warn-ambiguous-pragma", warn_ambiguous_pragma).
> -long_option("warn-ambiguous-pragmas", warn_ambiguous_pragma).
> -long_option("warn-stdlib-shadowing", warn_stdlib_shadowing).
> -long_option("inform-inferred", inform_inferred).
> -long_option("inform-inferred-types", inform_inferred_types).
> -long_option("inform-inferred-modes", inform_inferred_modes).
> -long_option("inform-suboptimal-packing", inform_suboptimal_packing).
> -long_option("print-error-spec-id", print_error_spec_id).
> -long_option("inform-ignored-pragma-errors", inform_ignored_pragma_errors).
> -long_option("inform-generated-type-spec-pragmas",
> +long_option_table("warn-ambiguous-pragma", warn_ambiguous_pragma).
> +long_option_table("warn-ambiguous-pragmas", warn_ambiguous_pragma).
> +long_option_table("warn-stdlib-shadowing", warn_stdlib_shadowing).
> +long_option_table("inform-inferred", inform_inferred).
> +long_option_table("inform-inferred-types", inform_inferred_types).
> +long_option_table("inform-inferred-modes", inform_inferred_modes).
> +long_option_table("inform-suboptimal-packing",
> inform_suboptimal_packing).
> +long_option_table("print-error-spec-id", print_error_spec_id).
> +long_option_table("inform-ignored-pragma-errors",
> + inform_ignored_pragma_errors).
> +long_option_table("inform-generated-type-spec-pragmas",
> inform_generated_type_spec_pragmas).
>
> % verbosity options
> -long_option("verbose", verbose).
> -long_option("very-verbose", very_verbose).
> -long_option("verbose-error-messages", verbose_errors).
> -long_option("verbose-recompilation", verbose_recompilation).
> -long_option("find-all-recompilation-reasons",
> +long_option_table("verbose", verbose).
> +long_option_table("very-verbose", very_verbose).
> +long_option_table("verbose-error-messages", verbose_errors).
> +long_option_table("verbose-recompilation", verbose_recompilation).
> +long_option_table("find-all-recompilation-reasons",
> find_all_recompilation_reasons).
> -long_option("verbose-make", verbose_make).
> -long_option("verbose-commands", verbose_commands).
> -long_option("output-compile-error-lines", output_compile_error_lines).
> -long_option("report-cmd-line-args", report_cmd_line_args).
> -long_option("report-cmd-line-args-in-doterr",
> +long_option_table("verbose-make", verbose_make).
> +long_option_table("verbose-commands", verbose_commands).
> +long_option_table("output-compile-error-lines",
> output_compile_error_lines).
> +long_option_table("report-cmd-line-args", report_cmd_line_args).
> +long_option_table("report-cmd-line-args-in-doterr",
> report_cmd_line_args_in_doterr).
> -long_option("statistics", statistics).
> -long_option("detailed-statistics", detailed_statistics).
> -long_option("proc-size-statistics", proc_size_statistics).
> -long_option("inst-statistics", inst_statistics).
> -long_option("limit-error-contexts", limit_error_contexts).
> -long_option("debug-types", debug_types).
> -long_option("debug-types-pred-name", debug_types_pred_name).
> -long_option("debug-modes", debug_modes).
> -long_option("debug-modes-statistics", debug_modes_statistics).
> -long_option("debug-modes-minimal", debug_modes_minimal).
> -long_option("debug-modes-verbose", debug_modes_verbose).
> -long_option("debug-modes-pred-id", debug_modes_pred_id).
> -long_option("debug-dep-par-conj", debug_dep_par_conj).
> -long_option("debug-determinism", debug_det).
> -long_option("debug-det", debug_det).
> -long_option("debug-code-gen-pred-id", debug_code_gen_pred_id).
> -long_option("debug-termination", debug_term).
> -long_option("debug-term", debug_term).
> -long_option("debug-dead-proc-elim", debug_dead_proc_elim).
> -long_option("debug-higher-order-specialization",
> +long_option_table("statistics", statistics).
> +long_option_table("detailed-statistics", detailed_statistics).
> +long_option_table("proc-size-statistics", proc_size_statistics).
> +long_option_table("inst-statistics", inst_statistics).
> +long_option_table("limit-error-contexts", limit_error_contexts).
> +long_option_table("debug-types", debug_types).
> +long_option_table("debug-types-pred-name", debug_types_pred_name).
> +long_option_table("debug-modes", debug_modes).
> +long_option_table("debug-modes-statistics", debug_modes_statistics).
> +long_option_table("debug-modes-minimal", debug_modes_minimal).
> +long_option_table("debug-modes-verbose", debug_modes_verbose).
> +long_option_table("debug-modes-pred-id", debug_modes_pred_id).
> +long_option_table("debug-dep-par-conj", debug_dep_par_conj).
> +long_option_table("debug-determinism", debug_det).
> +long_option_table("debug-det", debug_det).
> +long_option_table("debug-code-gen-pred-id", debug_code_gen_pred_id).
> +long_option_table("debug-termination", debug_term).
> +long_option_table("debug-term", debug_term).
> +long_option_table("debug-dead-proc-elim", debug_dead_proc_elim).
> +long_option_table("debug-higher-order-specialization",
> debug_higher_order_specialization).
> -long_option("debug-opt", debug_opt).
> -long_option("debug-opt-pred-id", debug_opt_pred_id).
> -long_option("debug-opt-pred-name", debug_opt_pred_name).
> -long_option("debug-pd", debug_pd).
> -long_option("debug-liveness", debug_liveness).
> -long_option("debug-stack-opt", debug_stack_opt).
> -long_option("debug-make", debug_make).
> -long_option("debug-closure", debug_closure).
> -long_option("debug-trail-usage", debug_trail_usage).
> -long_option("debug-mode-constraints", debug_mode_constraints).
> -long_option("debug-intermodule-analysis", debug_intermodule_analysis).
> -long_option("debug-mm-tabling-analysis", debug_mm_tabling_analysis).
> -long_option("debug-indirect-reuse", debug_indirect_reuse).
> -long_option("debug-type-rep", debug_type_rep).
> +long_option_table("debug-opt", debug_opt).
> +long_option_table("debug-opt-pred-id", debug_opt_pred_id).
> +long_option_table("debug-opt-pred-name", debug_opt_pred_name).
> +long_option_table("debug-pd", debug_pd).
> +long_option_table("debug-liveness", debug_liveness).
> +long_option_table("debug-stack-opt", debug_stack_opt).
> +long_option_table("debug-make", debug_make).
> +long_option_table("debug-closure", debug_closure).
> +long_option_table("debug-trail-usage", debug_trail_usage).
> +long_option_table("debug-mode-constraints", debug_mode_constraints).
> +long_option_table("debug-intermodule-analysis",
> debug_intermodule_analysis).
> +long_option_table("debug-mm-tabling-analysis",
> debug_mm_tabling_analysis).
> +long_option_table("debug-indirect-reuse", debug_indirect_reuse).
> +long_option_table("debug-type-rep", debug_type_rep).
>
> % output options (mutually exclusive)
> -long_option("generate-source-file-mapping",
> +long_option_table("generate-source-file-mapping",
> only_opmode_generate_source_file_mapping).
> -long_option("generate-dependency-file",
> only_opmode_generate_dependency_file).
> -long_option("generate-dependencies", only_opmode_generate_dependencies).
> -long_option("generate-dependencies-ints",
> +long_option_table("generate-dependency-file",
> + only_opmode_generate_dependency_file).
> +long_option_table("generate-dependencies",
> only_opmode_generate_dependencies).
> +long_option_table("generate-dependencies-ints",
> only_opmode_generate_dependencies_ints).
> -long_option("generate-module-order", generate_module_order).
> -long_option("generate-standalone-interface", generate_standalone_interface).
> -long_option("make-short-interface", only_opmode_make_short_interface).
> -long_option("make-short-int", only_opmode_make_short_interface).
> -long_option("make-interface", only_opmode_make_interface).
> -long_option("make-int", only_opmode_make_interface).
> -long_option("make-private-interface", only_opmode_make_private_interface).
> -long_option("make-priv-int", only_opmode_make_private_interface).
> -long_option("make-optimization-interface",
> +long_option_table("generate-module-order", generate_module_order).
> +long_option_table("generate-standalone-interface",
> + generate_standalone_interface).
> +long_option_table("make-short-interface",
> only_opmode_make_short_interface).
> +long_option_table("make-short-int",
> only_opmode_make_short_interface).
> +long_option_table("make-interface", only_opmode_make_interface).
> +long_option_table("make-int", only_opmode_make_interface).
> +long_option_table("make-private-interface",
> + only_opmode_make_private_interface).
> +long_option_table("make-priv-int",
> + only_opmode_make_private_interface).
> +long_option_table("make-optimization-interface",
> only_opmode_make_optimization_interface).
> -long_option("make-optimisation-interface",
> +long_option_table("make-optimisation-interface",
> only_opmode_make_optimization_interface).
> -long_option("make-opt-int",
> +long_option_table("make-opt-int",
> only_opmode_make_optimization_interface).
> -long_option("make-transitive-optimization-interface",
> +long_option_table("make-transitive-optimization-interface",
> only_opmode_make_transitive_opt_interface).
> -long_option("make-transitive-optimisation-interface",
> +long_option_table("make-transitive-optimisation-interface",
> only_opmode_make_transitive_opt_interface).
> -long_option("make-trans-opt",
> +long_option_table("make-trans-opt",
> only_opmode_make_transitive_opt_interface).
> -long_option("make-analysis-registry", only_opmode_make_analysis_registry).
> -long_option("make-xml-doc", only_opmode_make_xml_documentation).
> -long_option("make-xml-documentation", only_opmode_make_xml_documentation).
> -long_option("convert-to-mercury", only_opmode_convert_to_mercury).
> -long_option("convert-to-Mercury", only_opmode_convert_to_mercury).
> -long_option("pretty-print", only_opmode_convert_to_mercury).
> -long_option("typecheck-only", only_opmode_typecheck_only).
> -long_option("errorcheck-only", only_opmode_errorcheck_only).
> -long_option("target-code-only", only_opmode_target_code_only).
> -long_option("compile-only", only_opmode_compile_only).
> -long_option("compile-to-shared-lib", compile_to_shared_lib).
> -long_option("output-grade-string", only_opmode_output_grade_string).
> -long_option("output-link-command", only_opmode_output_link_command).
> -long_option("output-shared-lib-link-command",
> +long_option_table("make-analysis-registry",
> + only_opmode_make_analysis_registry).
> +long_option_table("make-xml-doc",
> + only_opmode_make_xml_documentation).
> +long_option_table("make-xml-documentation",
> + only_opmode_make_xml_documentation).
> +long_option_table("convert-to-mercury",
> only_opmode_convert_to_mercury).
> +long_option_table("convert-to-Mercury",
> only_opmode_convert_to_mercury).
> +long_option_table("pretty-print",
> only_opmode_convert_to_mercury).
> +long_option_table("typecheck-only", only_opmode_typecheck_only).
> +long_option_table("errorcheck-only", only_opmode_errorcheck_only).
> +long_option_table("target-code-only", only_opmode_target_code_only).
> +long_option_table("compile-only", only_opmode_compile_only).
> +long_option_table("compile-to-shared-lib", compile_to_shared_lib).
> +long_option_table("output-grade-string",
> only_opmode_output_grade_string).
> +long_option_table("output-link-command",
> only_opmode_output_link_command).
> +long_option_table("output-shared-lib-link-command",
> only_opmode_output_shared_lib_link_command).
> -long_option("output-stdlib-grades", only_opmode_output_stdlib_grades).
> -long_option("output-libgrades", only_opmode_output_libgrades).
> -long_option("output-cc", only_opmode_output_cc).
> -long_option("output-cc-type", only_opmode_output_c_compiler_type).
> -long_option("output-c-compiler-type", only_opmode_output_c_compiler_type).
> -long_option("output-csharp-compiler", only_opmode_output_csharp_compiler).
> -long_option("output-csharp-compiler-type",
> +long_option_table("output-stdlib-grades",
> + only_opmode_output_stdlib_grades).
> +long_option_table("output-libgrades", only_opmode_output_libgrades).
> +long_option_table("output-cc", only_opmode_output_cc).
> +long_option_table("output-cc-type",
> + only_opmode_output_c_compiler_type).
> +long_option_table("output-c-compiler-type",
> + only_opmode_output_c_compiler_type).
> +long_option_table("output-csharp-compiler",
> + only_opmode_output_csharp_compiler).
> +long_option_table("output-csharp-compiler-type",
> only_opmode_output_csharp_compiler_type).
> -long_option("output-cflags", only_opmode_output_cflags).
> -long_option("output-library-link-flags",
> +long_option_table("output-cflags", only_opmode_output_cflags).
> +long_option_table("output-library-link-flags",
> only_opmode_output_library_link_flags).
> -long_option("output-grade-defines", only_opmode_output_grade_defines).
> -long_option("output-c-include-directory-flags",
> +long_option_table("output-grade-defines",
> + only_opmode_output_grade_defines).
> +long_option_table("output-c-include-directory-flags",
> only_opmode_output_c_include_directory_flags).
> -long_option("output-c-include-dir-flags",
> +long_option_table("output-c-include-dir-flags",
> only_opmode_output_c_include_directory_flags).
> -long_option("output-target-arch", only_opmode_output_target_arch).
> -long_option("output-class-directory", only_opmode_output_java_class_dir).
> -long_option("output-class-dir", only_opmode_output_java_class_dir).
> -long_option("output-java-class-directory",
> only_opmode_output_java_class_dir).
> -long_option("output-java-class-dir",
> only_opmode_output_java_class_dir).
> -long_option("output-stdlib-modules", only_opmode_output_stdlib_modules).
> +long_option_table("output-target-arch",
> only_opmode_output_target_arch).
> +long_option_table("output-class-directory",
> only_opmode_output_java_class_dir).
> +long_option_table("output-class-dir",
> only_opmode_output_java_class_dir).
> +long_option_table("output-java-class-directory",
> + only_opmode_output_java_class_dir).
> +long_option_table("output-java-class-dir",
> only_opmode_output_java_class_dir).
> +long_option_table("output-stdlib-modules",
> only_opmode_output_stdlib_modules).
>
> % aux output options
> -long_option("smart-recompilation", smart_recompilation).
> -long_option("generate-mmc-make-module-dependencies",
> +long_option_table("smart-recompilation", smart_recompilation).
> +long_option_table("generate-mmc-make-module-dependencies",
> +
> generate_mmc_make_module_dependencies).
> +long_option_table("generate-mmc-deps",
> generate_mmc_make_module_dependencies).
> -long_option("generate-mmc-deps",
> generate_mmc_make_module_dependencies).
> -long_option("ssdb-trace", ssdb_trace_level).
> -long_option("link-ssdb-libs", link_ssdb_libs).
> -long_option("link-ssdebug-libs", link_ssdb_libs).
> -long_option("trace", trace_level).
> -long_option("trace-optimised", trace_optimized).
> -long_option("trace-optimized", trace_optimized).
> -long_option("trace-prof", trace_prof).
> -long_option("trace-table-io", trace_table_io).
> -long_option("trace-table-io-only-retry", trace_table_io_only_retry).
> -long_option("trace-table-io-states", trace_table_io_states).
> -long_option("trace-table-io-require", trace_table_io_require).
> -long_option("trace-table-io-all", trace_table_io_all).
> -long_option("trace-flag", trace_goal_flags).
> -long_option("profile-optimised", prof_optimized).
> -long_option("profile-optimized", prof_optimized).
> -long_option("exec-trace-tail-rec", exec_trace_tail_rec).
> -long_option("suppress-trace", suppress_trace).
> -long_option("force-disable-tracing", force_disable_tracing).
> -long_option("delay-death", delay_death).
> -long_option("delay-death-max-vars", delay_death_max_vars).
> -long_option("stack-trace-higher-order", stack_trace_higher_order).
> -long_option("force-disable-ssdebug", force_disable_ssdebug).
> -long_option("generate-bytecode", generate_bytecode).
> -long_option("line-numbers", line_numbers).
> -long_option("line-numbers-around-foreign-code",
> +long_option_table("ssdb-trace", ssdb_trace_level).
> +long_option_table("link-ssdb-libs", link_ssdb_libs).
> +long_option_table("link-ssdebug-libs", link_ssdb_libs).
> +long_option_table("trace", trace_level).
> +long_option_table("trace-optimised", trace_optimized).
> +long_option_table("trace-optimized", trace_optimized).
> +long_option_table("trace-prof", trace_prof).
> +long_option_table("trace-table-io", trace_table_io).
> +long_option_table("trace-table-io-only-retry",
> trace_table_io_only_retry).
> +long_option_table("trace-table-io-states", trace_table_io_states).
> +long_option_table("trace-table-io-require", trace_table_io_require).
> +long_option_table("trace-table-io-all", trace_table_io_all).
> +long_option_table("trace-flag", trace_goal_flags).
> +long_option_table("profile-optimised", prof_optimized).
> +long_option_table("profile-optimized", prof_optimized).
> +long_option_table("exec-trace-tail-rec", exec_trace_tail_rec).
> +long_option_table("suppress-trace", suppress_trace).
> +long_option_table("force-disable-tracing", force_disable_tracing).
> +long_option_table("delay-death", delay_death).
> +long_option_table("delay-death-max-vars", delay_death_max_vars).
> +long_option_table("stack-trace-higher-order", stack_trace_higher_order).
> +long_option_table("force-disable-ssdebug", force_disable_ssdebug).
> +long_option_table("generate-bytecode", generate_bytecode).
> +long_option_table("line-numbers", line_numbers).
> +long_option_table("line-numbers-around-foreign-code",
> line_numbers_around_foreign_code).
> -long_option("line-numbers-for-c-headers", line_numbers_for_c_headers).
> -long_option("type-repns-for-humans", type_repns_for_humans).
> -long_option("auto-comments", auto_comments).
> -long_option("frameopt-comments", frameopt_comments).
> -long_option("max-error-line-width", max_error_line_width).
> -long_option("reverse-error-order", reverse_error_order).
> -long_option("show-definitions", show_definitions).
> -long_option("show-definition-line-counts", show_definition_line_counts).
> -long_option("show-definition-extents", show_definition_extents).
> -long_option("show-local-call-tree", show_local_call_tree).
> -long_option("show-all-type-repns", show_all_type_repns).
> -long_option("show-all-type-representations", show_all_type_repns).
> -long_option("show-local-type-repns", show_local_type_repns).
> -long_option("show-local-type-representations", show_local_type_repns).
> -long_option("show-developer-type-repns",
> show_developer_type_repns).
> -long_option("show-developer-type-representations",
> show_developer_type_repns).
> -long_option("show-dependency-graph", show_dependency_graph).
> -long_option("show-pred-movability", show_pred_movability).
> -long_option("imports-graph", imports_graph).
> -long_option("trans-opt-deps-spec", trans_opt_deps_spec).
> -long_option("dump-trace-counts", dump_trace_counts).
> -long_option("dump-hlds", dump_hlds).
> -long_option("hlds-dump", dump_hlds).
> -long_option("dump-hlds-pred-id", dump_hlds_pred_id).
> -long_option("dump-hlds-pred-name", dump_hlds_pred_name).
> -long_option("dump-hlds-pred-name-order", dump_hlds_pred_name_order).
> -long_option("dump-hlds-alias", dump_hlds_alias).
> -long_option("dump-hlds-spec-preds", dump_hlds_spec_preds).
> -long_option("dump-hlds-spec-preds-for", dump_hlds_spec_preds_for).
> -long_option("dump-hlds-options", dump_hlds_options).
> -long_option("dump-hlds-inst-limit", dump_hlds_inst_limit).
> -long_option("dump-hlds-inst-size-limit", dump_hlds_inst_size_limit).
> -long_option("dump-hlds-file-suffix", dump_hlds_file_suffix).
> -long_option("dump-same-hlds", dump_same_hlds).
> -long_option("dump-mlds", dump_mlds).
> -long_option("dump-mlds-pred-name", dump_mlds_pred_name).
> -long_option("mlds-dump", dump_mlds).
> -long_option("verbose-dump-mlds", verbose_dump_mlds).
> -long_option("verbose-mlds-dump", verbose_dump_mlds).
> -long_option("dump-options-file", dump_options_file).
> -long_option("mode-constraints", mode_constraints).
> -long_option("simple-mode-constraints", simple_mode_constraints).
> -long_option("prop-mode-constraints", prop_mode_constraints).
> -long_option("compute-goal-modes", compute_goal_modes).
> -long_option("propagate-mode-constraints", prop_mode_constraints).
> -long_option("benchmark-modes", benchmark_modes).
> -long_option("benchmark-modes-repeat", benchmark_modes_repeat).
> -long_option("unneeded-code-debug", unneeded_code_debug).
> -long_option("unneeded-code-debug-pred-name",
> unneeded_code_debug_pred_name).
> -long_option("common-struct-preds", common_struct_preds).
> +long_option_table("line-numbers-for-c-headers", line_numbers_for_c_headers).
> +long_option_table("type-repns-for-humans", type_repns_for_humans).
> +long_option_table("auto-comments", auto_comments).
> +long_option_table("frameopt-comments", frameopt_comments).
> +long_option_table("max-error-line-width", max_error_line_width).
> +long_option_table("reverse-error-order", reverse_error_order).
> +long_option_table("show-definitions", show_definitions).
> +long_option_table("show-definition-line-counts",
> show_definition_line_counts).
> +long_option_table("show-definition-extents", show_definition_extents).
> +long_option_table("show-local-call-tree", show_local_call_tree).
> +long_option_table("show-all-type-repns", show_all_type_repns).
> +long_option_table("show-all-type-representations", show_all_type_repns).
> +long_option_table("show-local-type-repns",
> show_local_type_repns).
> +long_option_table("show-local-type-representations",
> show_local_type_repns).
> +long_option_table("show-developer-type-repns",
> + show_developer_type_repns).
> +long_option_table("show-developer-type-representations",
> + show_developer_type_repns).
> +long_option_table("show-dependency-graph", show_dependency_graph).
> +long_option_table("show-pred-movability", show_pred_movability).
> +long_option_table("imports-graph", imports_graph).
> +long_option_table("trans-opt-deps-spec", trans_opt_deps_spec).
> +long_option_table("dump-trace-counts", dump_trace_counts).
> +long_option_table("dump-hlds", dump_hlds).
> +long_option_table("hlds-dump", dump_hlds).
> +long_option_table("dump-hlds-pred-id", dump_hlds_pred_id).
> +long_option_table("dump-hlds-pred-name", dump_hlds_pred_name).
> +long_option_table("dump-hlds-pred-name-order", dump_hlds_pred_name_order).
> +long_option_table("dump-hlds-alias", dump_hlds_alias).
> +long_option_table("dump-hlds-spec-preds", dump_hlds_spec_preds).
> +long_option_table("dump-hlds-spec-preds-for", dump_hlds_spec_preds_for).
> +long_option_table("dump-hlds-options", dump_hlds_options).
> +long_option_table("dump-hlds-inst-limit", dump_hlds_inst_limit).
> +long_option_table("dump-hlds-inst-size-limit", dump_hlds_inst_size_limit).
> +long_option_table("dump-hlds-file-suffix", dump_hlds_file_suffix).
> +long_option_table("dump-same-hlds", dump_same_hlds).
> +long_option_table("dump-mlds", dump_mlds).
> +long_option_table("dump-mlds-pred-name", dump_mlds_pred_name).
> +long_option_table("mlds-dump", dump_mlds).
> +long_option_table("verbose-dump-mlds", verbose_dump_mlds).
> +long_option_table("verbose-mlds-dump", verbose_dump_mlds).
> +long_option_table("dump-options-file", dump_options_file).
> +long_option_table("mode-constraints", mode_constraints).
> +long_option_table("simple-mode-constraints", simple_mode_constraints).
> +long_option_table("prop-mode-constraints", prop_mode_constraints).
> +long_option_table("compute-goal-modes", compute_goal_modes).
> +long_option_table("propagate-mode-constraints", prop_mode_constraints).
> +long_option_table("benchmark-modes", benchmark_modes).
> +long_option_table("benchmark-modes-repeat", benchmark_modes_repeat).
> +long_option_table("unneeded-code-debug", unneeded_code_debug).
> +long_option_table("unneeded-code-debug-pred-name",
> + unneeded_code_debug_pred_name).
> +long_option_table("common-struct-preds", common_struct_preds).
>
> % language semantics options
> -long_option("reorder-conj", reorder_conj).
> -long_option("reorder-disj", reorder_disj).
> -long_option("fully-strict", fully_strict).
> -long_option("strict-sequential", strict_sequential).
> -long_option("allow-stubs", allow_stubs).
> -long_option("infer-all", infer_all).
> -long_option("infer-types", infer_types).
> -long_option("infer-modes", infer_modes).
> -long_option("infer-determinism", infer_det).
> -long_option("infer-det", infer_det).
> -long_option("type-inference-iteration-limit",
> type_inference_iteration_limit).
> -long_option("mode-inference-iteration-limit",
> mode_inference_iteration_limit).
> -long_option("event-set-file-name", event_set_file_name).
> +long_option_table("reorder-conj", reorder_conj).
> +long_option_table("reorder-disj", reorder_disj).
> +long_option_table("fully-strict", fully_strict).
> +long_option_table("strict-sequential", strict_sequential).
> +long_option_table("allow-stubs", allow_stubs).
> +long_option_table("infer-all", infer_all).
> +long_option_table("infer-types", infer_types).
> +long_option_table("infer-modes", infer_modes).
> +long_option_table("infer-determinism", infer_det).
> +long_option_table("infer-det", infer_det).
> +long_option_table("type-inference-iteration-limit",
> + type_inference_iteration_limit).
> +long_option_table("mode-inference-iteration-limit",
> + mode_inference_iteration_limit).
> +long_option_table("event-set-file-name", event_set_file_name).
>
> % compilation model options
> -long_option("grade", grade).
> +long_option_table("grade", grade).
> % target selection options
> -long_option("target", target).
> -long_option("compile-to-c", compile_to_c).
> -long_option("compile-to-C", compile_to_c).
> -long_option("java", java).
> -long_option("Java", java).
> -long_option("java-only", java_only).
> -long_option("Java-only", java_only).
> -long_option("csharp", csharp).
> -long_option("C#", csharp).
> -long_option("csharp-only", csharp_only).
> -long_option("C#-only", csharp_only).
> +long_option_table("target", target).
> +long_option_table("compile-to-c", compile_to_c).
> +long_option_table("compile-to-C", compile_to_c).
> +long_option_table("java", java).
> +long_option_table("Java", java).
> +long_option_table("java-only", java_only).
> +long_option_table("Java-only", java_only).
> +long_option_table("csharp", csharp).
> +long_option_table("C#", csharp).
> +long_option_table("csharp-only", csharp_only).
> +long_option_table("C#-only", csharp_only).
> % Optional features compilation model options:
> % (a) debugging
> -long_option("debug", exec_trace).
> -long_option("decl-debug", decl_debug).
> -long_option("ssdb", source_to_source_debug).
> -long_option("ss-debug", source_to_source_debug).
> -long_option("source-to-source-debug", source_to_source_debug).
> +long_option_table("debug", exec_trace).
> +long_option_table("decl-debug", decl_debug).
> +long_option_table("ssdb", source_to_source_debug).
> +long_option_table("ss-debug", source_to_source_debug).
> +long_option_table("source-to-source-debug", source_to_source_debug).
> % (b) profiling
> -long_option("profiling", profiling).
> -long_option("time-profiling", time_profiling).
> -long_option("memory-profiling", memory_profiling).
> -long_option("deep-profiling", deep_profiling).
> -long_option("profile-calls", profile_calls).
> -long_option("profile-time", profile_time).
> -long_option("profile-memory", profile_memory).
> -long_option("profile-deep", profile_deep).
> -long_option("use-activation-counts", use_activation_counts).
> -long_option("pre-prof-transforms-simplify", pre_prof_transforms_simplify).
> -long_option("pre-implicit-parallelism-simplify",
> +long_option_table("profiling", profiling).
> +long_option_table("time-profiling", time_profiling).
> +long_option_table("memory-profiling", memory_profiling).
> +long_option_table("deep-profiling", deep_profiling).
> +long_option_table("profile-calls", profile_calls).
> +long_option_table("profile-time", profile_time).
> +long_option_table("profile-memory", profile_memory).
> +long_option_table("profile-deep", profile_deep).
> +long_option_table("use-activation-counts", use_activation_counts).
> +long_option_table("pre-prof-transforms-simplify",
> + pre_prof_transforms_simplify).
> +long_option_table("pre-implicit-parallelism-simplify",
> pre_implicit_parallelism_simplify).
> -long_option("coverage-profiling", coverage_profiling).
> -long_option("coverage-profiling-via-calls",
> +long_option_table("coverage-profiling", coverage_profiling).
> +long_option_table("coverage-profiling-via-calls",
> coverage_profiling_via_calls).
> -long_option("coverage-profiling-static",
> +long_option_table("coverage-profiling-static",
> coverage_profiling_static).
> -long_option("profile-deep-coverage-after-goal",
> +long_option_table("profile-deep-coverage-after-goal",
> profile_deep_coverage_after_goal).
> -long_option("profile-deep-coverage-branch-ite",
> +long_option_table("profile-deep-coverage-branch-ite",
> profile_deep_coverage_branch_ite).
> -long_option("profile-deep-coverage-branch-switch",
> +long_option_table("profile-deep-coverage-branch-switch",
> profile_deep_coverage_branch_switch).
> -long_option("profile-deep-coverage-branch-disj",
> +long_option_table("profile-deep-coverage-branch-disj",
> profile_deep_coverage_branch_disj).
> -long_option("profile-deep-coverage-use-portcounts",
> +long_option_table("profile-deep-coverage-use-portcounts",
> profile_deep_coverage_use_portcounts).
> -long_option("profile-deep-coverage-use-trivial",
> +long_option_table("profile-deep-coverage-use-trivial",
> profile_deep_coverage_use_trivial).
> -long_option("profile-for-implicit-parallelism",
> +long_option_table("profile-for-implicit-parallelism",
> profile_for_feedback).
> -long_option("profile-for-feedback",
> +long_option_table("profile-for-feedback",
> profile_for_feedback).
> -long_option("use-zeroing-for-ho-cycles",
> +long_option_table("use-zeroing-for-ho-cycles",
> use_zeroing_for_ho_cycles).
> -long_option("use-lots-of-ho-specialization",
> +long_option_table("use-lots-of-ho-specialization",
> use_lots_of_ho_specialization).
> -long_option("deep-profile-tail-recursion",
> +long_option_table("deep-profile-tail-recursion",
> deep_profile_tail_recursion).
> -long_option("record-term-sizes-as-words", record_term_sizes_as_words).
> -long_option("record-term-sizes-as-cells", record_term_sizes_as_cells).
> -long_option("experimental-complexity", experimental_complexity).
> +long_option_table("record-term-sizes-as-words", record_term_sizes_as_words).
> +long_option_table("record-term-sizes-as-cells", record_term_sizes_as_cells).
> +long_option_table("experimental-complexity", experimental_complexity).
> % (c) miscellaneous optional features
> -long_option("gc", gc).
> -long_option("garbage-collection", gc).
> -long_option("parallel", parallel).
> -long_option("use-trail", use_trail).
> -long_option("type-layout", type_layout).
> -long_option("maybe-thread-safe", maybe_thread_safe_opt).
> -long_option("extend-stacks-when-needed", extend_stacks_when_needed).
> -long_option("stack-segments", stack_segments).
> -long_option("use-regions", use_regions).
> -long_option("use-alloc-regions", use_alloc_regions).
> -long_option("use-regions-debug", use_regions_debug).
> -long_option("use-regions-profiling",use_regions_profiling).
> +long_option_table("gc", gc).
> +long_option_table("garbage-collection", gc).
> +long_option_table("parallel", parallel).
> +long_option_table("use-trail", use_trail).
> +long_option_table("type-layout", type_layout).
> +long_option_table("maybe-thread-safe", maybe_thread_safe_opt).
> +long_option_table("extend-stacks-when-needed",
> extend_stacks_when_needed).
> +long_option_table("stack-segments", stack_segments).
> +long_option_table("use-regions", use_regions).
> +long_option_table("use-alloc-regions", use_alloc_regions).
> +long_option_table("use-regions-debug", use_regions_debug).
> +long_option_table("use-regions-profiling",use_regions_profiling).
> % Data representation options
> -long_option("use-minimal-model-stack-copy", use_minimal_model_stack_copy).
> -long_option("use-minimal-model-own-stacks", use_minimal_model_own_stacks).
> -long_option("minimal-model-debug", minimal_model_debug).
> -long_option("pregenerated-dist", pregenerated_dist).
> -long_option("single-prec-float", single_prec_float).
> -long_option("single-precision-float", single_prec_float).
> -long_option("num-tag-bits", num_ptag_bits). % for historical reasons
> -long_option("num-ptag-bits", num_ptag_bits).
> -long_option("bits-per-word", bits_per_word).
> -long_option("bytes-per-word", bytes_per_word).
> -long_option("conf-low-tag-bits", conf_low_ptag_bits). % for historical
> ...
> -long_option("conf-low-ptag-bits", conf_low_ptag_bits).
> -long_option("unboxed-float", unboxed_float).
> -long_option("unboxed-int64s", unboxed_int64s).
> -long_option("unboxed-no-tag-types", unboxed_no_tag_types).
> -long_option("arg-pack-bits", arg_pack_bits).
> -long_option("pack-everything", pack_everything).
> -long_option("allow-direct-args", allow_direct_args).
> -long_option("allow-double-word-fields", allow_double_word_fields).
> -long_option("allow-double-word-ints", allow_double_word_ints).
> -long_option("allow-packing-dummies", allow_packing_dummies).
> -long_option("allow-packing-ints", allow_packing_ints).
> -long_option("allow-packing-chars", allow_packing_chars).
> -long_option("allow-packing-local-sectags", allow_packing_local_sectags).
> -long_option("allow-packing-remote-sectags", allow_packing_remote_sectags).
> -long_option("allow-packing-mini-types", allow_packing_mini_types).
> -long_option("allow-packed-unify-compare", allow_packed_unify_compare).
> -long_option("sync-term-size", sync_term_size).
> +long_option_table("use-minimal-model-stack-copy",
> + use_minimal_model_stack_copy).
> +long_option_table("use-minimal-model-own-stacks",
> + use_minimal_model_own_stacks).
> +long_option_table("minimal-model-debug", minimal_model_debug).
> +long_option_table("pregenerated-dist", pregenerated_dist).
> +long_option_table("single-prec-float", single_prec_float).
> +long_option_table("single-precision-float", single_prec_float).
> +long_option_table("num-tag-bits", num_ptag_bits). % for historical
> reasons
> +long_option_table("num-ptag-bits", num_ptag_bits).
> +long_option_table("bits-per-word", bits_per_word).
> +long_option_table("bytes-per-word", bytes_per_word).
> +long_option_table("conf-low-tag-bits", conf_low_ptag_bits). % for
> historical ...
> +long_option_table("conf-low-ptag-bits", conf_low_ptag_bits).
> +long_option_table("unboxed-float", unboxed_float).
> +long_option_table("unboxed-int64s", unboxed_int64s).
> +long_option_table("unboxed-no-tag-types", unboxed_no_tag_types).
> +long_option_table("arg-pack-bits", arg_pack_bits).
> +long_option_table("pack-everything", pack_everything).
> +long_option_table("allow-direct-args", allow_direct_args).
> +long_option_table("allow-double-word-fields", allow_double_word_fields).
> +long_option_table("allow-double-word-ints", allow_double_word_ints).
> +long_option_table("allow-packing-dummies", allow_packing_dummies).
> +long_option_table("allow-packing-ints", allow_packing_ints).
> +long_option_table("allow-packing-chars", allow_packing_chars).
> +long_option_table("allow-packing-local-sectags",
> allow_packing_local_sectags).
> +long_option_table("allow-packing-remote-sectags",
> + allow_packing_remote_sectags).
> +long_option_table("allow-packing-mini-types", allow_packing_mini_types).
> +long_option_table("allow-packed-unify-compare",
> allow_packed_unify_compare).
> +long_option_table("sync-term-size", sync_term_size).
> % LLDS back-end compilation model options
> -long_option("gcc-non-local-gotos", gcc_non_local_gotos).
> -long_option("gcc-global-registers", gcc_global_registers).
> -long_option("asm-labels", asm_labels).
> -long_option("use-float-registers", use_float_registers).
> +long_option_table("gcc-non-local-gotos", gcc_non_local_gotos).
> +long_option_table("gcc-global-registers", gcc_global_registers).
> +long_option_table("asm-labels", asm_labels).
> +long_option_table("use-float-registers", use_float_registers).
> % MLDS back-end compilation model options
> -long_option("highlevel-code", highlevel_code).
> -long_option("high-level-code", highlevel_code).
> -long_option("highlevel-C", highlevel_code).
> -long_option("highlevel-c", highlevel_code).
> -long_option("high-level-C", highlevel_code).
> -long_option("high-level-c", highlevel_code).
> -long_option("c-debug-grade", c_debug_grade).
> -long_option("det-copy-out", det_copy_out).
> -long_option("nondet-copy-out", nondet_copy_out).
> -long_option("put-commit-in-own-func", put_commit_in_own_func).
> +long_option_table("highlevel-code", highlevel_code).
> +long_option_table("high-level-code", highlevel_code).
> +long_option_table("highlevel-C", highlevel_code).
> +long_option_table("highlevel-c", highlevel_code).
> +long_option_table("high-level-C", highlevel_code).
> +long_option_table("high-level-c", highlevel_code).
> +long_option_table("c-debug-grade", c_debug_grade).
> +long_option_table("det-copy-out", det_copy_out).
> +long_option_table("nondet-copy-out", nondet_copy_out).
> +long_option_table("put-commit-in-own-func", put_commit_in_own_func).
>
> % internal use options
> -long_option("backend-foreign-languages", backend_foreign_languages).
> -long_option("agc-stack-layout", agc_stack_layout).
> -long_option("basic-stack-layout", basic_stack_layout).
> -long_option("procid-stack-layout", procid_stack_layout).
> -long_option("trace-stack-layout", trace_stack_layout).
> -long_option("body-typeinfo-liveness", body_typeinfo_liveness).
> -long_option("can-compare-constants-as-ints",
> can_compare_constants_as_ints).
> -long_option("pretest-equality-cast-pointers",
> pretest_equality_cast_pointers).
> -long_option("delay-partial-instantiations", delay_partial_instantiations).
> -long_option("allow-defn-of-builtins", allow_defn_of_builtins).
> -long_option("type-ctor-info", type_ctor_info).
> -long_option("type-ctor-layout", type_ctor_layout).
> -long_option("type-ctor-functors", type_ctor_functors).
> -long_option("new-type-class-rtti", new_type_class_rtti).
> -long_option("rtti-line-numbers", rtti_line_numbers).
> -long_option("disable-mm-pneg", disable_minimal_model_stack_copy_pneg).
> -long_option("disable-mm-cut", disable_minimal_model_stack_copy_cut).
> -long_option("disable-trail-ops", disable_trail_ops).
> -long_option("size-region-ite-fixed", size_region_ite_fixed).
> -long_option("size-region-disj-fixed", size_region_disj_fixed).
> -long_option("size-region-commit-fixed", size_region_commit_fixed).
> -long_option("size-region-ite-protect", size_region_ite_protect).
> -long_option("size-region-ite-snapshot", size_region_ite_snapshot).
> -long_option("size-region-semi-disj-protect",
> size_region_semi_disj_protect).
> -long_option("size-region-disj-snapshot", size_region_disj_snapshot).
> -long_option("size-region-commit-entry", size_region_commit_entry).
> -long_option("allow-multi-arm-switches", allow_multi_arm_switches).
> -long_option("type-check-constraints", type_check_constraints).
> +long_option_table("backend-foreign-languages", backend_foreign_languages).
> +long_option_table("agc-stack-layout", agc_stack_layout).
> +long_option_table("basic-stack-layout", basic_stack_layout).
> +long_option_table("procid-stack-layout", procid_stack_layout).
> +long_option_table("trace-stack-layout", trace_stack_layout).
> +long_option_table("body-typeinfo-liveness", body_typeinfo_liveness).
> +long_option_table("can-compare-constants-as-ints",
> + can_compare_constants_as_ints).
> +long_option_table("pretest-equality-cast-pointers",
> + pretest_equality_cast_pointers).
> +long_option_table("delay-partial-instantiations",
> + delay_partial_instantiations).
> +long_option_table("allow-defn-of-builtins",
> + allow_defn_of_builtins).
> +long_option_table("type-ctor-info", type_ctor_info).
> +long_option_table("type-ctor-layout", type_ctor_layout).
> +long_option_table("type-ctor-functors", type_ctor_functors).
> +long_option_table("new-type-class-rtti", new_type_class_rtti).
> +long_option_table("rtti-line-numbers", rtti_line_numbers).
> +long_option_table("disable-mm-pneg",
> disable_minimal_model_stack_copy_pneg).
> +long_option_table("disable-mm-cut",
> disable_minimal_model_stack_copy_cut).
> +long_option_table("disable-trail-ops", disable_trail_ops).
> +long_option_table("size-region-ite-fixed", size_region_ite_fixed).
> +long_option_table("size-region-disj-fixed", size_region_disj_fixed).
> +long_option_table("size-region-commit-fixed", size_region_commit_fixed).
> +long_option_table("size-region-ite-protect", size_region_ite_protect).
> +long_option_table("size-region-ite-snapshot", size_region_ite_snapshot).
> +long_option_table("size-region-semi-disj-protect",
> + size_region_semi_disj_protect).
> +long_option_table("size-region-disj-snapshot",
> + size_region_disj_snapshot).
> +long_option_table("size-region-commit-entry",
> + size_region_commit_entry).
> +long_option_table("allow-multi-arm-switches", allow_multi_arm_switches).
> +long_option_table("type-check-constraints", type_check_constraints).
>
> % code generation options
> -long_option("table-debug", table_debug).
> -long_option("trad-passes", trad_passes).
> -long_option("parallel-liveness", parallel_liveness).
> -long_option("parallel-code-gen", parallel_code_gen).
> -long_option("reclaim-heap-on-failure", reclaim_heap_on_failure).
> -long_option("reclaim-heap-on-semidet-failure",
> +long_option_table("table-debug", table_debug).
> +long_option_table("trad-passes", trad_passes).
> +long_option_table("parallel-liveness", parallel_liveness).
> +long_option_table("parallel-code-gen", parallel_code_gen).
> +long_option_table("reclaim-heap-on-failure", reclaim_heap_on_failure).
> +long_option_table("reclaim-heap-on-semidet-failure",
> reclaim_heap_on_semidet_failure).
> -long_option("reclaim-heap-on-nondet-failure",
> +long_option_table("reclaim-heap-on-nondet-failure",
> reclaim_heap_on_nondet_failure).
> -long_option("branch-delay-slot", have_delay_slot).
> -long_option("have-delay-slot", have_delay_slot).
> -long_option("num-real-r-regs", num_real_r_regs).
> -long_option("num-real-f-regs", num_real_f_regs).
> -long_option("num-real-r-temps", num_real_r_temps).
> -long_option("num-real-f-temps", num_real_f_temps).
> -long_option("num-real-temps", num_real_r_temps). % obsolete
> -long_option("max-jump-table-size", max_jump_table_size).
> -% long_option("max-spec-do-call-closure",
> +long_option_table("branch-delay-slot", have_delay_slot).
> +long_option_table("have-delay-slot", have_delay_slot).
> +long_option_table("num-real-r-regs", num_real_r_regs).
> +long_option_table("num-real-f-regs", num_real_f_regs).
> +long_option_table("num-real-r-temps", num_real_r_temps).
> +long_option_table("num-real-f-temps", num_real_f_temps).
> +long_option_table("num-real-temps", num_real_r_temps). % obsolete
> +long_option_table("max-jump-table-size", max_jump_table_size).
> +% long_option_table("max-spec-do-call-closure",
> % max_specialized_do_call_closure).
> -% long_option("max-spec-do-call-class-method",
> +% long_option_table("max-spec-do-call-class-method",
> % max_specialized_do_call_class_method).
> -long_option("compare-specialization", compare_specialization).
> -long_option("should-pretest-equality", should_pretest_equality).
> -long_option("fact-table-max-array-size",fact_table_max_array_size).
> -long_option("fact-table-hash-percent-full",
> +long_option_table("compare-specialization", compare_specialization).
> +long_option_table("should-pretest-equality", should_pretest_equality).
> +long_option_table("fact-table-max-array-size",fact_table_max_array_size).
> +long_option_table("fact-table-hash-percent-full",
> fact_table_hash_percent_full).
> -long_option("prefer-switch", prefer_switch).
> -long_option("prefer-while-loop-over-jump-self",
> +long_option_table("prefer-switch", prefer_switch).
> +long_option_table("prefer-while-loop-over-jump-self",
> prefer_while_loop_over_jump_self).
> -long_option("prefer-while-loop-over-jump-mutual",
> +long_option_table("prefer-while-loop-over-jump-mutual",
> prefer_while_loop_over_jump_mutual).
> -long_option("opt-no-return-calls", opt_no_return_calls).
> -long_option("debug-class-init", debug_class_init).
> +long_option_table("opt-no-return-calls", opt_no_return_calls).
> +long_option_table("debug-class-init", debug_class_init).
>
> % optimization options
>
> -long_option("default-opt-level", default_opt_level).
> -long_option("opt-level", opt_level).
> -long_option("optimization-level", opt_level).
> -long_option("optimisation-level", opt_level).
> -long_option("opt-space", opt_space).
> -long_option("optimize-space", opt_space).
> -long_option("optimise-space", opt_space).
> -long_option("intermod-opt", intermodule_optimization).
> -long_option("intermodule-optimization", intermodule_optimization).
> -long_option("intermodule-optimisation", intermodule_optimization).
> -long_option("read-opt-files-transitively", read_opt_files_transitively).
> -long_option("use-opt-files", use_opt_files).
> -long_option("use-trans-opt-files", use_trans_opt_files).
> -long_option("transitive-intermodule-optimization",
> +long_option_table("default-opt-level", default_opt_level).
> +long_option_table("opt-level", opt_level).
> +long_option_table("optimization-level", opt_level).
> +long_option_table("optimisation-level", opt_level).
> +long_option_table("opt-space", opt_space).
> +long_option_table("optimize-space", opt_space).
> +long_option_table("optimise-space", opt_space).
> +long_option_table("intermod-opt", intermodule_optimization).
> +long_option_table("intermodule-optimization", intermodule_optimization).
> +long_option_table("intermodule-optimisation", intermodule_optimization).
> +long_option_table("read-opt-files-transitively",
> read_opt_files_transitively).
> +long_option_table("use-opt-files", use_opt_files).
> +long_option_table("use-trans-opt-files", use_trans_opt_files).
> +long_option_table("transitive-intermodule-optimization",
> transitive_optimization).
> -long_option("transitive-intermodule-optimisation",
> +long_option_table("transitive-intermodule-optimisation",
> transitive_optimization).
> -long_option("trans-intermod-opt", transitive_optimization).
> -long_option("intermodule-analysis", intermodule_analysis).
> -long_option("analysis-repeat", analysis_repeat).
> -long_option("analysis-file-cache", analysis_file_cache).
> +long_option_table("trans-intermod-opt", transitive_optimization).
> +long_option_table("intermodule-analysis", intermodule_analysis).
> +long_option_table("analysis-repeat", analysis_repeat).
> +long_option_table("analysis-file-cache", analysis_file_cache).
>
> % HLDS->HLDS optimizations
> -long_option("allow-inlining", optopt_allow_inlining).
> -long_option("inlining", inlining).
> -long_option("inline-simple", optopt_inline_simple).
> -long_option("inline-builtins", optopt_inline_builtins).
> -long_option("inline-single-use", optopt_inline_single_use).
> -long_option("inline-call-cost", optopt_inline_call_cost).
> -long_option("inline-compound-threshold",
> optopt_inline_compound_threshold).
> -long_option("inline-simple-threshold", optopt_inline_simple_threshold).
> -long_option("intermod-inline-simple-threshold",
> -
> optopt_intermod_inline_simple_threshold).
> -long_option("inline-linear-tail-rec-sccs",
> optopt_inline_linear_tail_rec_sccs).
> -long_option("inline-linear-tail-rec-sccs-max-extra",
> -
> optopt_inline_linear_tail_rec_sccs_max_extra).
> -long_option("from-ground-term-threshold",
> - optopt_from_ground_term_threshold).
> -long_option("inline-vars-threshold", optopt_inline_vars_threshold).
> +long_option_table("allow-inlining", optopt_allow_inlining).
> +long_option_table("inlining", inlining).
> +long_option_table("inline-simple", optopt_inline_simple).
> +long_option_table("inline-builtins", optopt_inline_builtins).
> +long_option_table("inline-single-use", optopt_inline_single_use).
> +long_option_table("inline-call-cost", optopt_inline_call_cost).
> +long_option_table("inline-compound-threshold",
> optopt_inline_compound_threshold).
> +long_option_table("inline-simple-threshold",
> optopt_inline_simple_threshold).
> +long_option_table("intermod-inline-simple-threshold",
> + optopt_intermod_inline_simple_threshold).
> +long_option_table("inline-linear-tail-rec-sccs",
> + optopt_inline_linear_tail_rec_sccs).
> +long_option_table("inline-linear-tail-rec-sccs-max-extra",
> +
> optopt_inline_linear_tail_rec_sccs_max_extra).
> +long_option_table("from-ground-term-threshold",
> + optopt_from_ground_term_threshold).
> +long_option_table("inline-vars-threshold", optopt_inline_vars_threshold).
> % This option is only for internal use by the compiler.
> -% long_option("const-struct-poly", optopt_enable_const_struct_poly).
> -long_option("const-struct", optopt_enable_const_struct_user).
> -long_option("common-struct", optopt_common_struct).
> -long_option("excess-assign", optopt_excess_assign).
> -long_option("merge-code-after-switch", optopt_merge_code_after_switch).
> -long_option("optimize-format-calls", optopt_optimize_format_calls).
> -long_option("split-switch-arms", optopt_split_switch_arms).
> -long_option("optimize-duplicate-calls", optopt_optimize_duplicate_calls).
> -long_option("optimise-duplicate-calls", optopt_optimize_duplicate_calls).
> -long_option("optimise-constant-propagation", optopt_constant_propagation).
> -long_option("optimize-constant-propagation", optopt_constant_propagation).
> -long_option("optimize-saved-vars", optimize_saved_vars).
> -long_option("optimise-saved-vars", optimize_saved_vars).
> -long_option("loop-invariants", optopt_loop_invariants).
> -long_option("optimize-saved-vars-const",
> optopt_optimize_saved_vars_const).
> -long_option("optimise-saved-vars-const",
> optopt_optimize_saved_vars_const).
> -long_option("optimize-saved-vars-cell", optopt_optimize_saved_vars_cell).
> -long_option("optimise-saved-vars-cell", optopt_optimize_saved_vars_cell).
> -long_option("osv-loop", optopt_optimize_saved_vars_cell_loop).
> -long_option("osv-full-path",
> optopt_optimize_saved_vars_cell_full_path).
> -long_option("osv-on-stack",
> optopt_optimize_saved_vars_cell_on_stack).
> -long_option("osv-cand-head",
> +% long_option_table("const-struct-poly",
> optopt_enable_const_struct_poly).
> +long_option_table("const-struct", optopt_enable_const_struct_user).
> +long_option_table("common-struct", optopt_common_struct).
> +long_option_table("excess-assign", optopt_excess_assign).
> +long_option_table("merge-code-after-switch",
> optopt_merge_code_after_switch).
> +long_option_table("optimize-format-calls", optopt_optimize_format_calls).
> +long_option_table("split-switch-arms", optopt_split_switch_arms).
> +long_option_table("optimize-duplicate-calls",
> optopt_optimize_duplicate_calls).
> +long_option_table("optimise-duplicate-calls",
> optopt_optimize_duplicate_calls).
> +long_option_table("optimise-constant-propagation",
> + optopt_constant_propagation).
> +long_option_table("optimize-constant-propagation",
> + optopt_constant_propagation).
> +long_option_table("optimize-saved-vars", optimize_saved_vars).
> +long_option_table("optimise-saved-vars", optimize_saved_vars).
> +long_option_table("loop-invariants", optopt_loop_invariants).
> +long_option_table("optimize-saved-vars-const",
> optopt_optimize_saved_vars_const).
> +long_option_table("optimise-saved-vars-const",
> optopt_optimize_saved_vars_const).
> +long_option_table("optimize-saved-vars-cell",
> optopt_optimize_saved_vars_cell).
> +long_option_table("optimise-saved-vars-cell",
> optopt_optimize_saved_vars_cell).
> +long_option_table("osv-loop", optopt_optimize_saved_vars_cell_loop).
> +long_option_table("osv-full-path",
> optopt_optimize_saved_vars_cell_full_path).
> +long_option_table("osv-on-stack",
> optopt_optimize_saved_vars_cell_on_stack).
> +long_option_table("osv-cand-head",
> optopt_optimize_saved_vars_cell_candidate_headvars).
> % The next four options are used by tupling.m as well; changes to them
> % may require changes there as well.
> -long_option("osv-cvstore-cost",
> +long_option_table("osv-cvstore-cost",
> optopt_optimize_saved_vars_cell_cv_store_cost).
> -long_option("osv-cvload-cost",
> +long_option_table("osv-cvload-cost",
> optopt_optimize_saved_vars_cell_cv_load_cost).
> -long_option("osv-fvstore-cost",
> +long_option_table("osv-fvstore-cost",
> optopt_optimize_saved_vars_cell_fv_store_cost).
> -long_option("osv-fvload-cost",
> +long_option_table("osv-fvload-cost",
> optopt_optimize_saved_vars_cell_fv_load_cost).
> -long_option("osv-op-ratio",
> +long_option_table("osv-op-ratio",
> optopt_optimize_saved_vars_cell_op_ratio).
> -long_option("osv-node-ratio",
> +long_option_table("osv-node-ratio",
> optopt_optimize_saved_vars_cell_node_ratio).
> -long_option("osv-allpath-node-ratio",
> +long_option_table("osv-allpath-node-ratio",
> optopt_optimize_saved_vars_cell_all_path_node_ratio).
> -long_option("osv-all-cand",
> +long_option_table("osv-all-cand",
> optopt_optimize_saved_vars_cell_include_all_candidates).
> -long_option("delay-construct", optopt_delay_construct).
> -long_option("delay-constructs", optopt_delay_construct).
> -long_option("follow-code", optopt_follow_code).
> -long_option("constraint-propagation", optopt_constraint_propagation).
> -long_option("local-constraint-propagation",
> +long_option_table("delay-construct", optopt_delay_construct).
> +long_option_table("delay-constructs", optopt_delay_construct).
> +long_option_table("follow-code", optopt_follow_code).
> +long_option_table("constraint-propagation",
> optopt_constraint_propagation).
> +long_option_table("local-constraint-propagation",
> optopt_local_constraint_propagation).
> -long_option("optimize-unused-args", optopt_optimize_unused_args).
> -long_option("optimise-unused-args", optopt_optimize_unused_args).
> -long_option("intermod-unused-args", optopt_intermod_unused_args).
> -long_option("optimize-higher-order", optopt_optimize_higher_order).
> -long_option("optimise-higher-order", optopt_optimize_higher_order).
> -long_option("higher-order-size-limit", optopt_higher_order_size_limit).
> -long_option("higher-order-arg-limit", optopt_higher_order_arg_limit).
> -long_option("unneeded-code", optopt_unneeded_code).
> -long_option("unneeded-code-copy-limit", optopt_unneeded_code_copy_limit).
> -long_option("type-specialization", optopt_type_specialization).
> -long_option("type-specialisation", optopt_type_specialization).
> -long_option("user-guided-type-specialization",
> +long_option_table("optimize-unused-args", optopt_optimize_unused_args).
> +long_option_table("optimise-unused-args", optopt_optimize_unused_args).
> +long_option_table("intermod-unused-args", optopt_intermod_unused_args).
> +long_option_table("optimize-higher-order", optopt_optimize_higher_order).
> +long_option_table("optimise-higher-order", optopt_optimize_higher_order).
> +long_option_table("higher-order-size-limit",
> optopt_higher_order_size_limit).
> +long_option_table("higher-order-arg-limit",
> optopt_higher_order_arg_limit).
> +long_option_table("unneeded-code", optopt_unneeded_code).
> +long_option_table("unneeded-code-copy-limit",
> optopt_unneeded_code_copy_limit).
> +long_option_table("type-specialization", optopt_type_specialization).
> +long_option_table("type-specialisation", optopt_type_specialization).
> +long_option_table("user-guided-type-specialization",
> optopt_user_guided_type_specialization).
> -long_option("user-guided-type-specialisation",
> +long_option_table("user-guided-type-specialisation",
> optopt_user_guided_type_specialization).
> % This option is for use in configure.in to test for some bug-fixes for
> % type-specialization which are needed to compile the library. It's not
> % documented, and should eventually be removed.
> -long_option("fixed-user-guided-type-specialization",
> +long_option_table("fixed-user-guided-type-specialization",
> optopt_user_guided_type_specialization).
> -long_option("introduce-accumulators", optopt_introduce_accumulators).
> -long_option("optimise-constructor-last-call-accumulator",
> +long_option_table("introduce-accumulators",
> optopt_introduce_accumulators).
> +long_option_table("optimise-constructor-last-call-accumulator",
> optopt_optimize_constructor_last_call_accumulator).
> -long_option("optimize-constructor-last-call-accumulator",
> +long_option_table("optimize-constructor-last-call-accumulator",
> optopt_optimize_constructor_last_call_accumulator).
> -long_option("optimise-constructor-last-call-null",
> +long_option_table("optimise-constructor-last-call-null",
> optopt_optimize_constructor_last_call_null).
> -long_option("optimize-constructor-last-call-null",
> +long_option_table("optimize-constructor-last-call-null",
> optopt_optimize_constructor_last_call_null).
> -long_option("optimise-constructor-last-call",
> +long_option_table("optimise-constructor-last-call",
> optopt_optimize_constructor_last_call).
> -long_option("optimize-constructor-last-call",
> +long_option_table("optimize-constructor-last-call",
> optopt_optimize_constructor_last_call).
> -long_option("optimize-dead-procs", optopt_optimize_dead_procs).
> -long_option("optimise-dead-procs", optopt_optimize_dead_procs).
> -long_option("deforestation", optopt_deforestation).
> -long_option("deforestation-depth-limit",
> optopt_deforestation_depth_limit).
> -long_option("deforestation-cost-factor",
> optopt_deforestation_cost_factor).
> -long_option("deforestation-vars-threshold",
> +long_option_table("optimize-dead-procs", optopt_optimize_dead_procs).
> +long_option_table("optimise-dead-procs", optopt_optimize_dead_procs).
> +long_option_table("deforestation", optopt_deforestation).
> +long_option_table("deforestation-depth-limit",
> optopt_deforestation_depth_limit).
> +long_option_table("deforestation-cost-factor",
> optopt_deforestation_cost_factor).
> +long_option_table("deforestation-vars-threshold",
> optopt_deforestation_vars_threshold).
> -long_option("deforestation-size-threshold",
> +long_option_table("deforestation-size-threshold",
> optopt_deforestation_size_threshold).
>
> -long_option("untuple", optopt_untuple).
> -long_option("tuple", optopt_tuple).
> -long_option("tuple-trace-counts-file", optopt_tuple_trace_counts_file).
> -long_option("tuple-costs-ratio", optopt_tuple_costs_ratio).
> -long_option("tuple-min-args", optopt_tuple_min_args).
> -long_option("inline-par-builtins", optopt_inline_par_builtins).
> -long_option("always-specialize-in-dep-par-conjs",
> +long_option_table("untuple", optopt_untuple).
> +long_option_table("tuple", optopt_tuple).
> +long_option_table("tuple-trace-counts-file",
> optopt_tuple_trace_counts_file).
> +long_option_table("tuple-costs-ratio", optopt_tuple_costs_ratio).
> +long_option_table("tuple-min-args", optopt_tuple_min_args).
> +long_option_table("inline-par-builtins", optopt_inline_par_builtins).
> +long_option_table("always-specialize-in-dep-par-conjs",
> optopt_always_specialize_in_dep_par_conjs).
> -long_option("allow-some-paths-only-waits",
> +long_option_table("allow-some-paths-only-waits",
> optopt_allow_some_paths_only_waits).
> -long_option("region-analysis", optopt_region_analysis).
> +long_option_table("region-analysis", optopt_region_analysis).
>
> % HLDS->LLDS optimizations
> -long_option("smart-indexing", optopt_smart_indexing).
> -long_option("smart-atomic-indexing", optopt_smart_atomic_indexing).
> -long_option("smart-string-indexing", optopt_smart_string_indexing).
> -long_option("smart-tag-indexing", optopt_smart_tag_indexing).
> -long_option("smart-float-indexing", optopt_smart_float_indexing).
> -long_option("dense-switch-req-density", optopt_dense_switch_req_density).
> -long_option("lookup-switch-req-density",optopt_lookup_switch_req_density).
> -long_option("dense-switch-size", optopt_dense_switch_size).
> -long_option("lookup-switch-size", optopt_lookup_switch_size).
> -long_option("string-switch-size", optopt_string_hash_switch_size).
> -long_option("string-trie-size", optopt_string_trie_switch_size).
> -long_option("string-trie-switch-size", optopt_string_trie_switch_size).
> -long_option("string-hash-switch-size", optopt_string_hash_switch_size).
> -long_option("string-binary-switch-size",
> optopt_string_binary_switch_size).
> -long_option("tag-switch-size", optopt_tag_switch_size).
> -long_option("try-switch-size", optopt_try_switch_size).
> -long_option("binary-switch-size", optopt_binary_switch_size).
> -long_option("switch-single-rec-base-first",
> +long_option_table("smart-indexing", optopt_smart_indexing).
> +long_option_table("smart-atomic-indexing", optopt_smart_atomic_indexing).
> +long_option_table("smart-string-indexing", optopt_smart_string_indexing).
> +long_option_table("smart-tag-indexing", optopt_smart_tag_indexing).
> +long_option_table("smart-float-indexing", optopt_smart_float_indexing).
> +long_option_table("dense-switch-req-density",
> optopt_dense_switch_req_density).
> +long_option_table("lookup-switch-req-density",
> + optopt_lookup_switch_req_density).
> +long_option_table("dense-switch-size", optopt_dense_switch_size).
> +long_option_table("lookup-switch-size", optopt_lookup_switch_size).
> +long_option_table("string-switch-size", optopt_string_hash_switch_size).
> +long_option_table("string-trie-size", optopt_string_trie_switch_size).
> +long_option_table("string-trie-switch-size",
> optopt_string_trie_switch_size).
> +long_option_table("string-hash-switch-size",
> optopt_string_hash_switch_size).
> +long_option_table("string-binary-switch-size",
> optopt_string_binary_switch_size).
> +long_option_table("tag-switch-size", optopt_tag_switch_size).
> +long_option_table("try-switch-size", optopt_try_switch_size).
> +long_option_table("binary-switch-size", optopt_binary_switch_size).
> +long_option_table("switch-single-rec-base-first",
> optopt_switch_single_rec_base_first).
> -long_option("switch-multi-rec-base-first",
> +long_option_table("switch-multi-rec-base-first",
> optopt_switch_multi_rec_base_first).
> -long_option("static-ground-terms", optopt_static_ground_cells).
> +long_option_table("static-ground-terms", optopt_static_ground_cells).
> % static_ground_floats should be set only in handle_options.m.
> -% long_option("static-ground-floats", static_ground_floats).
> +% long_option_table("static-ground-floats", static_ground_floats).
> % static_ground_int64s should be set only in handle_options.m.
> -% long_option("static-ground-int64s", static_ground_int64s).
> +% long_option_table("static-ground-int64s", static_ground_int64s).
> % static_code_addresses should be set only in handle_options.m.
> -% long_option("static-code-addresses", static_code_addresses).
> -long_option("use-atomic-cells", optopt_use_atomic_cells).
> -long_option("middle-rec", optopt_middle_rec).
> -long_option("simple-neg", optopt_simple_neg).
> -long_option("allow-hijacks", optopt_allow_hijacks).
> +% long_option_table("static-code-addresses", static_code_addresses).
> +long_option_table("use-atomic-cells", optopt_use_atomic_cells).
> +long_option_table("middle-rec", optopt_middle_rec).
> +long_option_table("simple-neg", optopt_simple_neg).
> +long_option_table("allow-hijacks", optopt_allow_hijacks).
>
> % MLDS optimizations
> % Option `optimize' is used for both MLDS and LLDS optimizations, but since
> % you can't use both at the same time it doesn't really matter.
> -long_option("mlds-optimize", optopt_optimize).
> -long_option("mlds-optimise", optopt_optimize).
> -long_option("mlds-peephole", optopt_optimize_peep).
> -long_option("optimize-tailcalls", optopt_optimize_mlds_tailcalls).
> -long_option("optimise-tailcalls", optopt_optimize_mlds_tailcalls).
> -long_option("optimize-initializations", optopt_optimize_initializations).
> -long_option("optimise-initializations", optopt_optimize_initializations).
> -long_option("eliminate-unused-mlds-assigns",
> +long_option_table("mlds-optimize", optopt_optimize).
> +long_option_table("mlds-optimise", optopt_optimize).
> +long_option_table("mlds-peephole", optopt_optimize_peep).
> +long_option_table("optimize-tailcalls", optopt_optimize_mlds_tailcalls).
> +long_option_table("optimise-tailcalls", optopt_optimize_mlds_tailcalls).
> +long_option_table("optimize-initializations",
> optopt_optimize_initializations).
> +long_option_table("optimise-initializations",
> optopt_optimize_initializations).
> +long_option_table("eliminate-unused-mlds-assigns",
> optopt_eliminate_unused_mlds_assigns).
> -long_option("eliminate-local-vars", optopt_eliminate_local_vars).
> -long_option("generate-trail-ops-inline", optopt_generate_trail_ops_inline).
> +long_option_table("eliminate-local-vars", optopt_eliminate_local_vars).
> +long_option_table("generate-trail-ops-inline",
> optopt_generate_trail_ops_inline).
>
> % LLDS optimizations
> -long_option("common-data", optopt_common_data).
> -long_option("common-layout-data", optopt_common_layout_data).
> -long_option("llds-optimize", optopt_optimize).
> -long_option("llds-optimise", optopt_optimize).
> -long_option("optimize-peep", optopt_optimize_peep).
> -long_option("optimise-peep", optopt_optimize_peep).
> -long_option("optimize-peep-mkword", optopt_optimize_peep_mkword).
> -long_option("optimise-peep-mkword", optopt_optimize_peep_mkword).
> -long_option("optimize-jumps", optopt_optimize_jumps).
> -long_option("optimise-jumps", optopt_optimize_jumps).
> -long_option("optimize-fulljumps", optopt_optimize_fulljumps).
> -long_option("optimise-fulljumps", optopt_optimize_fulljumps).
> -long_option("pessimize-tailcalls", optopt_pessimize_tailcalls).
> -long_option("checked-nondet-tailcalls", optopt_checked_nondet_tailcalls).
> -long_option("use-local-vars", optopt_use_local_vars).
> -long_option("local-var-access-threshold",
> optopt_local_var_access_threshold).
> -long_option("standardise-labels", optopt_standardize_labels).
> -long_option("standardize-labels", optopt_standardize_labels).
> -long_option("optimize-labels", optopt_optimize_labels).
> -long_option("optimise-labels", optopt_optimize_labels).
> -long_option("optimize-dups", optopt_optimize_dups).
> -long_option("optimise-dups", optopt_optimize_dups).
> -long_option("optimize-proc-dups", optopt_optimize_proc_dups).
> -long_option("optimise-proc-dups", optopt_optimize_proc_dups).
> -%%% long_option("optimize-copyprop", optimize_copyprop).
> -%%% long_option("optimise-copyprop", optimize_copyprop).
> -long_option("optimize-frames", optopt_optimize_frames).
> -long_option("optimise-frames", optopt_optimize_frames).
> -long_option("optimize-delay-slot", optopt_optimize_delay_slot).
> -long_option("optimise-delay-slot", optopt_optimize_delay_slot).
> -long_option("optimize-reassign", optopt_optimize_reassign).
> -long_option("optimise-reassign", optopt_optimize_reassign).
> -long_option("optimize-repeat", optopt_optimize_repeat).
> -long_option("optimise-repeat", optopt_optimize_repeat).
> -long_option("layout-compression-limit",
> optopt_layout_compression_limit).
> +long_option_table("common-data", optopt_common_data).
> +long_option_table("common-layout-data", optopt_common_layout_data).
> +long_option_table("llds-optimize", optopt_optimize).
> +long_option_table("llds-optimise", optopt_optimize).
> +long_option_table("optimize-peep", optopt_optimize_peep).
> +long_option_table("optimise-peep", optopt_optimize_peep).
> +long_option_table("optimize-peep-mkword", optopt_optimize_peep_mkword).
> +long_option_table("optimise-peep-mkword", optopt_optimize_peep_mkword).
> +long_option_table("optimize-jumps", optopt_optimize_jumps).
> +long_option_table("optimise-jumps", optopt_optimize_jumps).
> +long_option_table("optimize-fulljumps", optopt_optimize_fulljumps).
> +long_option_table("optimise-fulljumps", optopt_optimize_fulljumps).
> +long_option_table("pessimize-tailcalls", optopt_pessimize_tailcalls).
> +long_option_table("checked-nondet-tailcalls",
> optopt_checked_nondet_tailcalls).
> +long_option_table("use-local-vars", optopt_use_local_vars).
> +long_option_table("local-var-access-threshold",
> + optopt_local_var_access_threshold).
> +long_option_table("standardise-labels", optopt_standardize_labels).
> +long_option_table("standardize-labels", optopt_standardize_labels).
> +long_option_table("optimize-labels", optopt_optimize_labels).
> +long_option_table("optimise-labels", optopt_optimize_labels).
> +long_option_table("optimize-dups", optopt_optimize_dups).
> +long_option_table("optimise-dups", optopt_optimize_dups).
> +long_option_table("optimize-proc-dups", optopt_optimize_proc_dups).
> +long_option_table("optimise-proc-dups", optopt_optimize_proc_dups).
> +%%% long_option_table("optimize-copyprop", optimize_copyprop).
> +%%% long_option_table("optimise-copyprop", optimize_copyprop).
> +long_option_table("optimize-frames", optopt_optimize_frames).
> +long_option_table("optimise-frames", optopt_optimize_frames).
> +long_option_table("optimize-delay-slot", optopt_optimize_delay_slot).
> +long_option_table("optimise-delay-slot", optopt_optimize_delay_slot).
> +long_option_table("optimize-reassign", optopt_optimize_reassign).
> +long_option_table("optimise-reassign", optopt_optimize_reassign).
> +long_option_table("optimize-repeat", optopt_optimize_repeat).
> +long_option_table("optimise-repeat", optopt_optimize_repeat).
> +long_option_table("layout-compression-limit",
> + optopt_layout_compression_limit).
>
> % LLDS->C optimizations
> -long_option("use-macro-for-redo-fail", optopt_use_macro_for_redo_fail).
> -long_option("emit-c-loops", optopt_emit_c_loops).
> -long_option("procs-per-c-function", optopt_procs_per_c_function).
> -long_option("procs-per-C-function", optopt_procs_per_c_function).
> -long_option("everything-in-one-c-function",
> +long_option_table("use-macro-for-redo-fail",
> optopt_use_macro_for_redo_fail).
> +long_option_table("emit-c-loops", optopt_emit_c_loops).
> +long_option_table("procs-per-c-function", optopt_procs_per_c_function).
> +long_option_table("procs-per-C-function", optopt_procs_per_c_function).
> +long_option_table("everything-in-one-c-function",
> optopt_everything_in_one_c_function).
> -long_option("everything-in-one-C-function",
> +long_option_table("everything-in-one-C-function",
> optopt_everything_in_one_c_function).
> -long_option("inline-alloc", optopt_inline_alloc).
> -long_option("local-thread-engine-base", optopt_local_thread_engine_base).
> -
> -long_option("enable-termination", termination).
> -long_option("enable-term", termination).
> -long_option("check-termination", termination_check).
> -long_option("check-term", termination_check).
> -long_option("chk-term", termination_check).
> -long_option("verbose-check-termination", termination_check_verbose).
> -long_option("verb-check-term", termination_check_verbose).
> -long_option("verb-chk-term", termination_check_verbose).
> -long_option("termination-single-argument-analysis",
> +long_option_table("inline-alloc", optopt_inline_alloc).
> +long_option_table("local-thread-engine-base",
> optopt_local_thread_engine_base).
> +
> +long_option_table("enable-termination", termination).
> +long_option_table("enable-term", termination).
> +long_option_table("check-termination", termination_check).
> +long_option_table("check-term", termination_check).
> +long_option_table("chk-term", termination_check).
> +long_option_table("verbose-check-termination", termination_check_verbose).
> +long_option_table("verb-check-term", termination_check_verbose).
> +long_option_table("verb-chk-term", termination_check_verbose).
> +long_option_table("termination-single-argument-analysis",
> termination_single_args).
> -long_option("term-single-arg", termination_single_args).
> -long_option("termination-norm", termination_norm).
> -long_option("term-norm", termination_norm).
> -long_option("termination-error-limit", termination_error_limit).
> -long_option("term-err-limit", termination_error_limit).
> -long_option("termination-path-limit", termination_path_limit).
> -long_option("term-path-limit", termination_path_limit).
> -long_option("enable-termination2", termination2).
> -long_option("enable-term2", termination2).
> -long_option("check-termination2", termination2_check).
> -long_option("check-term2", termination2_check).
> -long_option("chk-term2", termination2_check).
> -long_option("verbose-check-termination2", termination2_check_verbose).
> -long_option("verb-check-term2", termination2_check_verbose).
> -long_option("verb-chk-term2", termination2_check_verbose).
> -long_option("termination2-widening-limit", widening_limit).
> -long_option("term2-widening-limit", widening_limit).
> -long_option("arg-size-analysis-only", arg_size_analysis_only).
> -long_option("termination2-propagate-failure-constraints",
> +long_option_table("term-single-arg", termination_single_args).
> +long_option_table("termination-norm", termination_norm).
> +long_option_table("term-norm", termination_norm).
> +long_option_table("termination-error-limit", termination_error_limit).
> +long_option_table("term-err-limit", termination_error_limit).
> +long_option_table("termination-path-limit", termination_path_limit).
> +long_option_table("term-path-limit", termination_path_limit).
> +long_option_table("enable-termination2", termination2).
> +long_option_table("enable-term2", termination2).
> +long_option_table("check-termination2", termination2_check).
> +long_option_table("check-term2", termination2_check).
> +long_option_table("chk-term2", termination2_check).
> +long_option_table("verbose-check-termination2", termination2_check_verbose).
> +long_option_table("verb-check-term2", termination2_check_verbose).
> +long_option_table("verb-chk-term2", termination2_check_verbose).
> +long_option_table("termination2-widening-limit", widening_limit).
> +long_option_table("term2-widening-limit", widening_limit).
> +long_option_table("arg-size-analysis-only", arg_size_analysis_only).
> +long_option_table("termination2-propagate-failure-constraints",
> + propagate_failure_constrs).
> +long_option_table("term2-propagate-failure-constraints",
> propagate_failure_constrs).
> -long_option("term2-propagate-failure-constraints",
> +long_option_table("term2-propagate-failure-constrs",
> propagate_failure_constrs).
> -long_option("term2-propagate-failure-constrs", propagate_failure_constrs).
> -long_option("termination2-norm", termination2_norm).
> -long_option("term2-norm", termination2_norm).
> -long_option("termination2-maximum-matrix-size", term2_maximum_matrix_size).
> -long_option("term2-max-matrix-size", term2_maximum_matrix_size).
> -long_option("analyse-exceptions", analyse_exceptions).
> -long_option("analyse-closures", analyse_closures).
> -long_option("analyse-local-closures", analyse_closures).
> -long_option("analyse-trail-usage", analyse_trail_usage).
> -long_option("optimize-trail-usage", optimize_trail_usage).
> -long_option("optimize-region-ops", optimize_region_ops).
> -long_option("analyse-mm-tabling", analyse_mm_tabling).
> +long_option_table("termination2-norm", termination2_norm).
> +long_option_table("term2-norm", termination2_norm).
> +long_option_table("termination2-maximum-matrix-size",
> term2_maximum_matrix_size).
> +long_option_table("term2-max-matrix-size", term2_maximum_matrix_size).
> +long_option_table("analyse-exceptions", analyse_exceptions).
> +long_option_table("analyse-closures", analyse_closures).
> +long_option_table("analyse-local-closures", analyse_closures).
> +long_option_table("analyse-trail-usage", analyse_trail_usage).
> +long_option_table("optimize-trail-usage", optimize_trail_usage).
> +long_option_table("optimize-region-ops", optimize_region_ops).
> +long_option_table("analyse-mm-tabling", analyse_mm_tabling).
>
> % CTGC related options.
> -long_option("structure-sharing", structure_sharing_analysis).
> -long_option("structure-sharing-widening", structure_sharing_widening).
> -long_option("structure-reuse", structure_reuse_analysis).
> -long_option("ctgc", structure_reuse_analysis).
> -long_option("structure-reuse-constraint", structure_reuse_constraint).
> -long_option("ctgc-constraint", structure_reuse_constraint).
> -long_option("structure-reuse-constraint-arg",
> structure_reuse_constraint_arg).
> -long_option("ctgc-constraint-arg", structure_reuse_constraint_arg).
> -long_option("structure-reuse-max-conditions",
> structure_reuse_max_conditions).
> -long_option("structure-reuse-repeat", structure_reuse_repeat).
> -long_option("structure-reuse-free-cells", structure_reuse_free_cells).
> +long_option_table("structure-sharing", structure_sharing_analysis).
> +long_option_table("structure-sharing-widening", structure_sharing_widening).
> +long_option_table("structure-reuse", structure_reuse_analysis).
> +long_option_table("ctgc", structure_reuse_analysis).
> +long_option_table("structure-reuse-constraint", structure_reuse_constraint).
> +long_option_table("ctgc-constraint", structure_reuse_constraint).
> +long_option_table("structure-reuse-constraint-arg",
> + structure_reuse_constraint_arg).
> +long_option_table("ctgc-constraint-arg", structure_reuse_constraint_arg).
> +long_option_table("structure-reuse-max-conditions",
> + structure_reuse_max_conditions).
> +long_option_table("structure-reuse-repeat", structure_reuse_repeat).
> +long_option_table("structure-reuse-free-cells", structure_reuse_free_cells).
>
> % Target code compilation options
> -long_option("target-debug", target_debug).
> +long_option_table("target-debug", target_debug).
>
> -long_option("cc", cc).
> -long_option("c-optimise", optopt_c_optimize).
> -long_option("c-optimize", optopt_c_optimize).
> +long_option_table("cc", cc).
> +long_option_table("c-optimise", optopt_c_optimize).
> +long_option_table("c-optimize", optopt_c_optimize).
> % XXX we should consider the relationship between c_debug and target_debug
> % more carefully. Perhaps target_debug could imply C debug if the target is
> % C.
> % However for the moment they are just synonyms.
> -long_option("c-debug", target_debug).
> -long_option("c-include-directory", c_include_directory).
> -long_option("c-include-dir", c_include_directory).
> -long_option("ansi-c", ansi_c).
> -long_option("cflags", cflags).
> -long_option("cflag", quoted_cflag).
> -
> -long_option("gcc-flags", gcc_flags).
> -long_option("gcc-flag", quoted_gcc_flag).
> -long_option("clang-flags", clang_flags).
> -long_option("clang-flag", quoted_clang_flag).
> -long_option("msvc-flags", msvc_flags).
> -long_option("msvc-flag", quoted_msvc_flag).
> -
> -long_option("cflags-for-warnings", cflags_for_warnings).
> -long_option("cflags-for-optimization", cflags_for_optimization).
> -long_option("cflags-for-ansi", cflags_for_ansi).
> -long_option("cflags-for-regs", cflags_for_regs).
> -long_option("cflags-for-gotos", cflags_for_gotos).
> -long_option("cflags-for-threads", cflags_for_threads).
> -long_option("cflags-for-debug", cflags_for_debug).
> -long_option("cflags-for-sanitizers", cflags_for_sanitizers).
> -long_option("cflags-for-pic", cflags_for_pic).
> -long_option("cflags-for-lto", cflags_for_lto).
> -long_option("c-flag-to-name-object-file", c_flag_to_name_object_file).
> -long_option("object-file-extension", object_file_extension).
> -long_option("pic-object-file-extension", pic_object_file_extension).
> -long_option("c-compiler-type", c_compiler_type).
> -long_option("csharp-compiler-type", csharp_compiler_type).
> -
> -long_option("java-compiler", java_compiler).
> -long_option("javac", java_compiler).
> -long_option("java-interpreter", java_interpreter).
> -long_option("javac-flags", java_compiler_flags).
> -long_option("javac-flag", quoted_java_compiler_flag).
> -long_option("java-flags", java_compiler_flags).
> -long_option("java-flag", quoted_java_compiler_flag).
> +long_option_table("c-debug", target_debug).
> +long_option_table("c-include-directory", c_include_directory).
> +long_option_table("c-include-dir", c_include_directory).
> +long_option_table("ansi-c", ansi_c).
> +long_option_table("cflags", cflags).
> +long_option_table("cflag", quoted_cflag).
> +
> +long_option_table("gcc-flags", gcc_flags).
> +long_option_table("gcc-flag", quoted_gcc_flag).
> +long_option_table("clang-flags", clang_flags).
> +long_option_table("clang-flag", quoted_clang_flag).
> +long_option_table("msvc-flags", msvc_flags).
> +long_option_table("msvc-flag", quoted_msvc_flag).
> +
> +long_option_table("cflags-for-warnings", cflags_for_warnings).
> +long_option_table("cflags-for-optimization", cflags_for_optimization).
> +long_option_table("cflags-for-ansi", cflags_for_ansi).
> +long_option_table("cflags-for-regs", cflags_for_regs).
> +long_option_table("cflags-for-gotos", cflags_for_gotos).
> +long_option_table("cflags-for-threads", cflags_for_threads).
> +long_option_table("cflags-for-debug", cflags_for_debug).
> +long_option_table("cflags-for-sanitizers", cflags_for_sanitizers).
> +long_option_table("cflags-for-pic", cflags_for_pic).
> +long_option_table("cflags-for-lto", cflags_for_lto).
> +long_option_table("c-flag-to-name-object-file", c_flag_to_name_object_file).
> +long_option_table("object-file-extension", object_file_extension).
> +long_option_table("pic-object-file-extension", pic_object_file_extension).
> +long_option_table("c-compiler-type", c_compiler_type).
> +long_option_table("csharp-compiler-type", csharp_compiler_type).
> +
> +long_option_table("java-compiler", java_compiler).
> +long_option_table("javac", java_compiler).
> +long_option_table("java-interpreter", java_interpreter).
> +long_option_table("javac-flags", java_compiler_flags).
> +long_option_table("javac-flag", quoted_java_compiler_flag).
> +long_option_table("java-flags", java_compiler_flags).
> +long_option_table("java-flag", quoted_java_compiler_flag).
> % XXX we should consider the relationship between java_debug and
> % target_debug
> % more carefully. Perhaps target_debug could imply Java debug if the target
> % is Java. However for the moment they are just synonyms.
> -long_option("java-debug", target_debug).
> -long_option("java-classpath", java_classpath).
> -long_option("java-runtime-flags", java_runtime_flags).
> -long_option("java-runtime-flag", quoted_java_runtime_flag).
> +long_option_table("java-debug", target_debug).
> +long_option_table("java-classpath", java_classpath).
> +long_option_table("java-runtime-flags", java_runtime_flags).
> +long_option_table("java-runtime-flag", quoted_java_runtime_flag).
>
> -long_option("csharp-compiler", csharp_compiler).
> -long_option("csharp-flags", csharp_flags).
> -long_option("csharp-flag", quoted_csharp_flag).
> -long_option("cli-interpreter", cli_interpreter).
> +long_option_table("csharp-compiler", csharp_compiler).
> +long_option_table("csharp-flags", csharp_flags).
> +long_option_table("csharp-flag", quoted_csharp_flag).
> +long_option_table("cli-interpreter", cli_interpreter).
>
> % link options
> -long_option("output-file", output_file_name).
> -long_option("ld-flags", ld_flags).
> -long_option("ld-flag", quoted_ld_flag).
> -long_option("ld-libflags", ld_libflags).
> -long_option("ld-libflag", quoted_ld_libflag).
> -long_option("library-directory", link_library_directories).
> -long_option("runtime-library-directory", runtime_link_library_directories).
> -long_option("default-runtime-library-directory",
> +long_option_table("output-file", output_file_name).
> +long_option_table("ld-flags", ld_flags).
> +long_option_table("ld-flag", quoted_ld_flag).
> +long_option_table("ld-libflags", ld_libflags).
> +long_option_table("ld-libflag", quoted_ld_libflag).
> +long_option_table("library-directory", link_library_directories).
> +long_option_table("runtime-library-directory",
> runtime_link_library_directories).
> +long_option_table("default-runtime-library-directory",
> default_runtime_library_directory).
> -long_option("library", link_libraries).
> -long_option("link-object", link_objects).
> -long_option("mercury-library", mercury_library_special).
> -long_option("ml", mercury_library_special).
> -long_option("mercury-library-directory", mercury_library_directory_special).
> -long_option("mld", mercury_library_directory_special).
> -long_option("search-library-files-directory",
> +long_option_table("library", link_libraries).
> +long_option_table("link-object", link_objects).
> +long_option_table("mercury-library", mercury_library_special).
> +long_option_table("ml", mercury_library_special).
> +long_option_table("mercury-library-directory",
> + mercury_library_directory_special).
> +long_option_table("mld",
> mercury_library_directory_special).
> +long_option_table("search-library-files-directory",
> search_library_files_directory_special).
> -long_option("search-lib-files-dir",
> +long_option_table("search-lib-files-dir",
> search_library_files_directory_special).
> -long_option("mercury-standard-library-directory",
> +long_option_table("mercury-standard-library-directory",
> mercury_standard_library_directory_special).
> -long_option("mercury-stdlib-dir",
> +long_option_table("mercury-stdlib-dir",
> mercury_standard_library_directory_special).
> -long_option("init-file-directory", init_file_directories).
> -long_option("init-file", init_files).
> -long_option("trace-init-file", trace_init_files).
> -long_option("linkage", linkage_special).
> -long_option("mercury-linkage", mercury_linkage_special).
> -long_option("demangle", demangle).
> -long_option("strip", strip).
> -long_option("main", main).
> -long_option("allow-undefined", allow_undefined).
> -long_option("use-readline", use_readline).
> -long_option("runtime-flags", runtime_flags).
> -long_option("extra-initialization-functions",
> +long_option_table("init-file-directory", init_file_directories).
> +long_option_table("init-file", init_files).
> +long_option_table("trace-init-file", trace_init_files).
> +long_option_table("linkage", linkage_special).
> +long_option_table("mercury-linkage", mercury_linkage_special).
> +long_option_table("demangle", demangle).
> +long_option_table("strip", strip).
> +long_option_table("main", main).
> +long_option_table("allow-undefined", allow_undefined).
> +long_option_table("use-readline", use_readline).
> +long_option_table("runtime-flags", runtime_flags).
> +long_option_table("extra-initialization-functions",
> extra_initialization_functions).
> -long_option("extra-inits", extra_initialization_functions).
> -long_option("framework", frameworks).
> -long_option("framework-directory", framework_directories).
> -long_option("sign-assembly", sign_assembly).
> -long_option("cstack-reserve-size", cstack_reserve_size).
> -
> -long_option("shared-library-extension", shared_library_extension).
> -long_option("library-extension", library_extension).
> -long_option("executable-file-extension", executable_file_extension).
> -long_option("create-archive-command", create_archive_command).
> -long_option("create-archive-command-output-flag",
> +long_option_table("extra-inits", extra_initialization_functions).
> +long_option_table("framework", frameworks).
> +long_option_table("framework-directory", framework_directories).
> +long_option_table("sign-assembly", sign_assembly).
> +long_option_table("cstack-reserve-size", cstack_reserve_size).
> +
> +long_option_table("shared-library-extension", shared_library_extension).
> +long_option_table("library-extension", library_extension).
> +long_option_table("executable-file-extension", executable_file_extension).
> +long_option_table("create-archive-command", create_archive_command).
> +long_option_table("create-archive-command-output-flag",
> create_archive_command_output_flag).
> -long_option("create-archive-command-flags", create_archive_command_flags).
> -long_option("link-executable-command", link_executable_command).
> -long_option("link-shared-lib-command", link_shared_lib_command).
> -long_option("ranlib-command", ranlib_command).
> -long_option("ranlib-flags", ranlib_flags).
> -long_option("mkinit-command", mkinit_command).
> -long_option("mkinit-erl-command", mkinit_erl_command).
> -long_option("demangle-command", demangle_command).
> -long_option("filtercc-command", filtercc_command).
> -long_option("filterjavac-command", filterjavac_command).
> -long_option("trace-libs", trace_libs).
> -long_option("thread-libs", thread_libs).
> -long_option("hwloc-libs", hwloc_libs).
> -long_option("hwloc-static-libs", hwloc_static_libs).
> -long_option("shared-libs", shared_libs).
> -long_option("math-lib", math_lib).
> -long_option("readline-libs", readline_libs).
> -long_option("linker-opt-separator", linker_opt_separator).
> -long_option("linker-debug-flags", linker_debug_flags).
> -long_option("shlib-linker-debug-flags", shlib_linker_debug_flags).
> -long_option("linker-sanitizer-flags", linker_sanitizer_flags).
> -long_option("linker-trace-flags", linker_trace_flags).
> -long_option("shlib-linker-trace-flags", shlib_linker_trace_flags).
> -long_option("linker-thread-flags", linker_thread_flags).
> -long_option("shlib-linker-thread-flags", shlib_linker_thread_flags).
> -long_option("linker-lto-flags", linker_lto_flags).
> -long_option("linker-static-flags", linker_static_flags).
> -long_option("linker-strip-flag", linker_strip_flag).
> -long_option("linker-link-lib-flag", linker_link_lib_flag).
> -long_option("linker-link-lib-suffix", linker_link_lib_suffix).
> -long_option("shlib-linker-link-lib-flag", shlib_linker_link_lib_flag).
> -long_option("shlib-linker-link-lib-suffix", shlib_linker_link_lib_suffix).
> -long_option("linker-path-flag", linker_path_flag).
> -long_option("linker-rpath-flag", linker_rpath_flag).
> -long_option("linker-rpath-separator", linker_rpath_separator).
> -long_option("shlib-linker-rpath-flag", shlib_linker_rpath_flag).
> -long_option("shlib-linker-rpath-separator", shlib_linker_rpath_separator).
> -long_option("linker-allow-undefined-flag", linker_allow_undefined_flag).
> -long_option("linker-error-undefined-flag", linker_error_undefined_flag).
> -long_option("shlib-linker-use-install-name", shlib_linker_use_install_name).
> -long_option("shlib-linker-install-name-flag",
> shlib_linker_install_name_flag).
> -long_option("shlib-linker-install-name-path",
> shlib_linker_install_name_path).
> -long_option("strip-executable-command", strip_executable_command).
> -long_option("strip-executable-shared-flags", strip_executable_shared_flags).
> -long_option("strip-executable-static-flags", strip_executable_static_flags).
> -long_option("java-archive-command", java_archive_command).
> +long_option_table("create-archive-command-flags",
> + create_archive_command_flags).
> +long_option_table("link-executable-command", link_executable_command).
> +long_option_table("link-shared-lib-command", link_shared_lib_command).
> +long_option_table("ranlib-command", ranlib_command).
> +long_option_table("ranlib-flags", ranlib_flags).
> +long_option_table("mkinit-command", mkinit_command).
> +long_option_table("mkinit-erl-command", mkinit_erl_command).
> +long_option_table("demangle-command", demangle_command).
> +long_option_table("filtercc-command", filtercc_command).
> +long_option_table("filterjavac-command", filterjavac_command).
> +long_option_table("trace-libs", trace_libs).
> +long_option_table("thread-libs", thread_libs).
> +long_option_table("hwloc-libs", hwloc_libs).
> +long_option_table("hwloc-static-libs", hwloc_static_libs).
> +long_option_table("shared-libs", shared_libs).
> +long_option_table("math-lib", math_lib).
> +long_option_table("readline-libs", readline_libs).
> +long_option_table("linker-opt-separator", linker_opt_separator).
> +long_option_table("linker-debug-flags", linker_debug_flags).
> +long_option_table("shlib-linker-debug-flags", shlib_linker_debug_flags).
> +long_option_table("linker-sanitizer-flags", linker_sanitizer_flags).
> +long_option_table("linker-trace-flags", linker_trace_flags).
> +long_option_table("shlib-linker-trace-flags", shlib_linker_trace_flags).
> +long_option_table("linker-thread-flags", linker_thread_flags).
> +long_option_table("shlib-linker-thread-flags", shlib_linker_thread_flags).
> +long_option_table("linker-lto-flags", linker_lto_flags).
> +long_option_table("linker-static-flags", linker_static_flags).
> +long_option_table("linker-strip-flag", linker_strip_flag).
> +long_option_table("linker-link-lib-flag", linker_link_lib_flag).
> +long_option_table("linker-link-lib-suffix", linker_link_lib_suffix).
> +long_option_table("shlib-linker-link-lib-flag", shlib_linker_link_lib_flag).
> +long_option_table("shlib-linker-link-lib-suffix",
> + shlib_linker_link_lib_suffix).
> +long_option_table("linker-path-flag", linker_path_flag).
> +long_option_table("linker-rpath-flag", linker_rpath_flag).
> +long_option_table("linker-rpath-separator", linker_rpath_separator).
> +long_option_table("shlib-linker-rpath-flag", shlib_linker_rpath_flag).
> +long_option_table("shlib-linker-rpath-separator",
> + shlib_linker_rpath_separator).
> +long_option_table("linker-allow-undefined-flag",
> linker_allow_undefined_flag).
> +long_option_table("linker-error-undefined-flag",
> linker_error_undefined_flag).
> +long_option_table("shlib-linker-use-install-name",
> + shlib_linker_use_install_name).
> +long_option_table("shlib-linker-install-name-flag",
> + shlib_linker_install_name_flag).
> +long_option_table("shlib-linker-install-name-path",
> + shlib_linker_install_name_path).
> +long_option_table("strip-executable-command", strip_executable_command).
> +long_option_table("strip-executable-shared-flags",
> + strip_executable_shared_flags).
> +long_option_table("strip-executable-static-flags",
> + strip_executable_static_flags).
> +long_option_table("java-archive-command", java_archive_command).
>
> % build system options
> -long_option("make", only_opmode_make).
> -long_option("invoked-by-mmc-make", only_opmode_invoked_by_mmc_make).
> -long_option("keep-going", keep_going).
> -long_option("rebuild", rebuild).
> -long_option("jobs", jobs).
> -long_option("track-flags", track_flags).
> -long_option("track-options", track_flags).
> -long_option("pre-link-command", pre_link_command).
> -long_option("extra-init-command", extra_init_command).
> -long_option("mercury-configuration-directory",
> +long_option_table("make", only_opmode_make).
> +long_option_table("invoked-by-mmc-make", only_opmode_invoked_by_mmc_make).
> +long_option_table("keep-going", keep_going).
> +long_option_table("rebuild", rebuild).
> +long_option_table("jobs", jobs).
> +long_option_table("track-flags", track_flags).
> +long_option_table("track-options", track_flags).
> +long_option_table("pre-link-command", pre_link_command).
> +long_option_table("extra-init-command", extra_init_command).
> +long_option_table("mercury-configuration-directory",
> mercury_configuration_directory_special).
> -long_option("mercury-config-dir",
> +long_option_table("mercury-config-dir",
> mercury_configuration_directory_special).
> -long_option("install-prefix", install_prefix).
> -long_option("install-method", install_method).
> -long_option("install-command", install_command).
> -long_option("install-command-dir-option", install_command_dir_option).
> -long_option("use-symlinks", use_symlinks).
> -long_option("library-grade", libgrades).
> -long_option("detect-libgrades", detect_libgrades).
> -long_option("libgrade", libgrades).
> -long_option("libgrades-include-component", libgrades_include_components).
> -long_option("libgrades-include", libgrades_include_components).
> -long_option("libgrades-exclude-component", libgrades_exclude_components).
> -long_option("libgrades-exclude", libgrades_exclude_components).
> -long_option("library-linkage", lib_linkages).
> -long_option("lib-linkage", lib_linkages).
> -long_option("flags", flags_file).
> -long_option("flags-file", flags_file).
> -long_option("options-file", options_files).
> -long_option("config-file", config_file).
> -long_option("options-search-directory", options_search_directories).
> -long_option("use-subdirs", setting_only_use_subdirs).
> -long_option("use-grade-subdirs", setting_only_use_grade_subdirs).
> -long_option("std-int-file-not-written-msgs",
> std_int_file_not_written_msgs).
> -long_option("search-directory", search_directories).
> -long_option("intermod-directory", intermod_directories).
> -long_option("use-search-directories-for-intermod",
> +long_option_table("install-prefix", install_prefix).
> +long_option_table("install-method", install_method).
> +long_option_table("install-command", install_command).
> +long_option_table("install-command-dir-option", install_command_dir_option).
> +long_option_table("use-symlinks", use_symlinks).
> +long_option_table("library-grade", libgrades).
> +long_option_table("detect-libgrades", detect_libgrades).
> +long_option_table("libgrade", libgrades).
> +long_option_table("libgrades-include-component",
> libgrades_include_components).
> +long_option_table("libgrades-include",
> libgrades_include_components).
> +long_option_table("libgrades-exclude-component",
> libgrades_exclude_components).
> +long_option_table("libgrades-exclude",
> libgrades_exclude_components).
> +long_option_table("library-linkage", lib_linkages).
> +long_option_table("lib-linkage", lib_linkages).
> +long_option_table("flags", flags_file).
> +long_option_table("flags-file", flags_file).
> +long_option_table("options-file", options_files).
> +long_option_table("config-file", config_file).
> +long_option_table("options-search-directory", options_search_directories).
> +long_option_table("use-subdirs", setting_only_use_subdirs).
> +long_option_table("use-grade-subdirs", setting_only_use_grade_subdirs).
> +long_option_table("std-int-file-not-written-msgs",
> + std_int_file_not_written_msgs).
> +long_option_table("search-directory", search_directories).
> +long_option_table("intermod-directory", intermod_directories).
> +long_option_table("use-search-directories-for-intermod",
> use_search_directories_for_intermod).
> -long_option("libgrade-install-check", libgrade_install_check).
> -long_option("order-make-by-timestamp", order_make_by_timestamp).
> -long_option("show-make-times", show_make_times).
> -long_option("extra-lib-header", extra_library_header).
> -long_option("extra-library-header", extra_library_header).
> -long_option("restricted-command-line", restricted_command_line).
> -long_option("env-type", env_type).
> -long_option("host-env-type", host_env_type).
> -long_option("system-env-type", system_env_type).
> -long_option("target-env-type", target_env_type).
> +long_option_table("libgrade-install-check", libgrade_install_check).
> +long_option_table("order-make-by-timestamp", order_make_by_timestamp).
> +long_option_table("show-make-times", show_make_times).
> +long_option_table("extra-lib-header", extra_library_header).
> +long_option_table("extra-library-header", extra_library_header).
> +long_option_table("restricted-command-line", restricted_command_line).
> +long_option_table("env-type", env_type).
> +long_option_table("host-env-type", host_env_type).
> +long_option_table("system-env-type", system_env_type).
> +long_option_table("target-env-type", target_env_type).
>
> % misc options
> -long_option("typecheck-ambiguity-warn-limit",
> +long_option_table("typecheck-ambiguity-warn-limit",
> typecheck_ambiguity_warn_limit).
> -long_option("typecheck-ambiguity-error-limit",
> +long_option_table("typecheck-ambiguity-error-limit",
> typecheck_ambiguity_error_limit).
> -long_option("help", help).
> -long_option("version", version).
> -long_option("filenames-from-stdin", filenames_from_stdin).
> -long_option("target-arch", target_arch).
> -long_option("cross-compiling", cross_compiling).
> -long_option("local-module-id", local_module_id).
> -long_option("analysis-file-cache-dir", analysis_file_cache_dir).
> -long_option("bug-intermod-2002-06-13", compiler_sufficiently_recent).
> -long_option("bug-intermod-2006-09-28", compiler_sufficiently_recent).
> -long_option("bug-foreign_import-2002-08-06", compiler_sufficiently_recent).
> -long_option("install-opt-files-2002-08-30", compiler_sufficiently_recent).
> -long_option("read-config-file-2003-03-01", compiler_sufficiently_recent).
> +long_option_table("help", help).
> +long_option_table("version", version).
> +long_option_table("filenames-from-stdin", filenames_from_stdin).
> +long_option_table("target-arch", target_arch).
> +long_option_table("cross-compiling", cross_compiling).
> +long_option_table("local-module-id", local_module_id).
> +long_option_table("analysis-file-cache-dir", analysis_file_cache_dir).
> +long_option_table("bug-intermod-2002-06-13", compiler_sufficiently_recent).
> +long_option_table("bug-intermod-2006-09-28", compiler_sufficiently_recent).
> +long_option_table("bug-foreign_import-2002-08-06",
> compiler_sufficiently_recent).
> +long_option_table("install-opt-files-2002-08-30",
> + compiler_sufficiently_recent).
> +long_option_table("read-config-file-2003-03-01",
> compiler_sufficiently_recent).
> % XXX this option won't be recognised because of the "no-" prefix,
> % but "no-no-" will be recognised.
> -long_option("no-noncompact-ho-call-2004-01-15",
> compiler_sufficiently_recent).
> -long_option("trace-io-builtins-2006-08-14", compiler_sufficiently_recent).
> -long_option("compound-compare-builtins-2007-07-09",
> +long_option_table("no-noncompact-ho-call-2004-01-15",
> + compiler_sufficiently_recent).
> +long_option_table("trace-io-builtins-2006-08-14",
> + compiler_sufficiently_recent).
> +long_option_table("compound-compare-builtins-2007-07-09",
> compiler_sufficiently_recent).
> % XXX this option won't be recognised because of the "no-" prefix,
> % but "no-no-" will be recognised.
> -long_option("no-det-warning-compound-compare-2007-07-17",
> +long_option_table("no-det-warning-compound-compare-2007-07-17",
> compiler_sufficiently_recent).
> -long_option("foreign-enum-switch-fix",
> +long_option_table("foreign-enum-switch-fix",
> compiler_sufficiently_recent).
> -long_option("failing-disjunct-in-switch-dup-fix",
> +long_option_table("failing-disjunct-in-switch-dup-fix",
> compiler_sufficiently_recent).
> -long_option("store-at-ref-impure-2008-09-11",
> +long_option_table("store-at-ref-impure-2008-09-11",
> compiler_sufficiently_recent).
> -long_option("java-export-ref-out", compiler_sufficiently_recent).
> -long_option("java-generics-2010-04-13",
> +long_option_table("java-export-ref-out", compiler_sufficiently_recent).
> +long_option_table("java-generics-2010-04-13",
> compiler_sufficiently_recent).
> -long_option("strip-executable-2014-05-05",
> +long_option_table("strip-executable-2014-05-05",
> compiler_sufficiently_recent).
> -long_option("trace-goal-only-locals-2017-07-05",
> +long_option_table("trace-goal-only-locals-2017-07-05",
> compiler_sufficiently_recent).
> -long_option("no-reserved-addrs",
> +long_option_table("no-reserved-addrs",
> compiler_sufficiently_recent).
> -long_option("builtin-lt-gt-2018-10-08",
> +long_option_table("builtin-lt-gt-2018-10-08",
> compiler_sufficiently_recent).
> -long_option("fixed-contiguity-2018-10-19",
> +long_option_table("fixed-contiguity-2018-10-19",
> compiler_sufficiently_recent).
> -long_option("simplest-msg-2019-09-22",
> +long_option_table("simplest-msg-2019-09-22",
> compiler_sufficiently_recent).
> -long_option("unqual-foreign-enums-in-int-files-2019-10-04",
> +long_option_table("unqual-foreign-enums-in-int-files-2019-10-04",
> compiler_sufficiently_recent).
> -long_option("obsolete-proc-2019-10-23",
> +long_option_table("obsolete-proc-2019-10-23",
> compiler_sufficiently_recent).
> -long_option("type-repn-int3-2020-03-22",
> +long_option_table("type-repn-int3-2020-03-22",
> compiler_sufficiently_recent).
> -long_option("github-85--2020-03-24",
> +long_option_table("github-85--2020-03-24",
> compiler_sufficiently_recent).
> -long_option("foreign-proc-typeinfo-2020-04-08",
> +long_option_table("foreign-proc-typeinfo-2020-04-08",
> compiler_sufficiently_recent).
> -long_option("ushift-2020-04-30",
> +long_option_table("ushift-2020-04-30",
> compiler_sufficiently_recent).
> -long_option("unsigned_lt-2020-05-02",
> +long_option_table("unsigned_lt-2020-05-02",
> compiler_sufficiently_recent).
> -long_option("format-uint-2020-05-23",
> +long_option_table("format-uint-2020-05-23",
> compiler_sufficiently_recent).
> -long_option("mmake-all-2020-05-25",
> +long_option_table("mmake-all-2020-05-25",
> compiler_sufficiently_recent).
> -long_option("unsigned-lt-2020-05-25",
> +long_option_table("unsigned-lt-2020-05-25",
> compiler_sufficiently_recent).
> -long_option("may-ignore-without-warning-2020-08-18",
> +long_option_table("may-ignore-without-warning-2020-08-18",
> compiler_sufficiently_recent).
> -long_option("prolog-is-2020-08-21",
> +long_option_table("prolog-is-2020-08-21",
> compiler_sufficiently_recent).
> -long_option("partial-inst-copy-2021-01-04",
> +long_option_table("partial-inst-copy-2021-01-04",
> compiler_sufficiently_recent).
> -long_option("mantis-bug-529-2021-02-25",
> +long_option_table("mantis-bug-529-2021-02-25",
> compiler_sufficiently_recent).
> -long_option("subtype-opt-2022-02-19",
> +long_option_table("subtype-opt-2022-02-19",
> compiler_sufficiently_recent).
> -long_option("typespec-pragma-2022-07-20",
> +long_option_table("typespec-pragma-2022-07-20",
> compiler_sufficiently_recent).
> -long_option("ushift-2022-12-06",
> +long_option_table("ushift-2022-12-06",
> compiler_sufficiently_recent).
> -long_option("ushift-2022-12-07",
> +long_option_table("ushift-2022-12-07",
> compiler_sufficiently_recent).
> -long_option("strtrie-2022-12-08",
> +long_option_table("strtrie-2022-12-08",
> compiler_sufficiently_recent).
> -long_option("term-pass2-2022-12-28",
> +long_option_table("term-pass2-2022-12-28",
> compiler_sufficiently_recent).
> -long_option("format-2023-01-27",
> +long_option_table("format-2023-01-27",
> compiler_sufficiently_recent).
> -long_option("singleton-2023-06-10",
> +long_option_table("singleton-2023-06-10",
> compiler_sufficiently_recent).
> -long_option("warn-obsolete-transform-2023-07-03",
> +long_option_table("warn-obsolete-transform-2023-07-03",
> compiler_sufficiently_recent).
> -long_option("gen-dep-ints-2023-10-15",
> +long_option_table("gen-dep-ints-2023-10-15",
> compiler_sufficiently_recent).
> -long_option("tscp-2024-02-07",
> +long_option_table("tscp-2024-02-07",
> compiler_sufficiently_recent).
> -long_option("format-2024-02-07",
> +long_option_table("format-2024-02-07",
> compiler_sufficiently_recent).
> -long_option("dym-2024-02-08",
> +long_option_table("dym-2024-02-08",
> compiler_sufficiently_recent).
> -long_option("wne-2024-02-21",
> +long_option_table("wne-2024-02-21",
> compiler_sufficiently_recent).
> -long_option("experiment", experiment).
> -long_option("experiment1", experiment1).
> -long_option("experiment2", experiment2).
> -long_option("experiment3", experiment3).
> -long_option("experiment4", experiment4).
> -long_option("experiment5", experiment5).
> -long_option("allow-ho-insts-as-modes",
> +long_option_table("experiment", experiment).
> +long_option_table("experiment1", experiment1).
> +long_option_table("experiment2", experiment2).
> +long_option_table("experiment3", experiment3).
> +long_option_table("experiment4", experiment4).
> +long_option_table("experiment5", experiment5).
> +long_option_table("allow-ho-insts-as-modes",
> allow_ho_insts_as_modes).
> -long_option("ignore-par-conjunctions",
> +long_option_table("ignore-par-conjunctions",
> ignore_par_conjunctions).
> -long_option("control-granularity", control_granularity).
> -long_option("distance-granularity", distance_granularity).
> -long_option("implicit-parallelism", implicit_parallelism).
> -long_option("feedback-file", feedback_file).
> -long_option("par-loop-control", par_loop_control).
> -long_option("par-loop-control-preserve-tail-recursion",
> +long_option_table("control-granularity", control_granularity).
> +long_option_table("distance-granularity", distance_granularity).
> +long_option_table("implicit-parallelism", implicit_parallelism).
> +long_option_table("feedback-file", feedback_file).
> +long_option_table("par-loop-control", par_loop_control).
> +long_option_table("par-loop-control-preserve-tail-recursion",
> par_loop_control_preserve_tail_recursion).
>
> % ---------------------------------------------------------------------------%
> diff --git a/library/getopt.m b/library/getopt.m
> index d4c38c8..32feab3 100644
> --- a/library/getopt.m
> +++ b/library/getopt.m
> @@ -90,12 +90,12 @@
> % option, that predicate will report an error when processing a command
> % line
> % that contains that option.
> %
> -% Boolean (i.e. bool or bool_special), maybe_int, maybe_string and
> -% accumulating options can be negated. Negating an accumulating option
> -% empties the accumulated list of strings. Single-character options
> -% can be negated by following them with another `-', e.g. `-x-' will negate
> -% the `-x' option. Long options can be negated by preceding them with
> `--no-',
> -% e.g. `--no-foo' will negate the `--foo' option.
> +% Boolean (i.e. bool or bool_special), maybe_int, maybe_string,
> +% maybe_string_special and accumulating options can be negated. Negating an
> +% accumulating option empties the accumulated list of strings.
> Single-character
> +% options can be negated by following them with another `-', e.g. `-x-' will
> +% negate the `-x' option. Long options can be negated by preceding them with
> +% `--no-', e.g. `--no-foo' will negate the `--foo' option.
> %
> % Note that arguments following an option may be separated from the option
> % by
> % either whitespace or the equals character `=', so that e.g. `--foo 3' and
>
More information about the reviews
mailing list