[m-rev.] diff: fixes an dupdates for the compiler's --help message

Julien Fischer jfischer at opturion.com
Sun Jan 4 21:16:14 AEDT 2015


Fixes and updates for the compiler's --help message.

Other documentation fixes.

compiler/options.m:
     Add missing quotes around options referred to in the bodies of option
     descriptions.

     s/Don't warn/Do not warn/ throughout the warning options section.

     Fix inconsistent hyphenation:
     - s/up to date/up-to-date/
     - s/backend/back-end/

     The 'csharp' and 'erlang' grade components were missing from
     the description of the --grade option.  (They are present in the User's
     Guide version.)

     Do not include an "=" between the option and its argument description
     fo the --experimental-complexity option, we don't do this anywhere
     else.

     Add a sentence saying that the '--single-prec-float' option is not
     supported on the non-C backends.  (The User's Guide had this sentence,
     the usage message did not.)

     The description of `--higher-order-arg-limit' was missing the fact
     that it takes an argument.

     Be consistent about how alternative option values are shown:
     {alt1, alt2, ... altN} rather than {alt1|alt2|...|altN}.

doc/user_guide.texi:
     Make this consistent with the usage message (or vice versa).

doc/reference_manual.texi:
     Add missing markup around "pragma foreign_proc".

doc/transition_guide.texi:
     Add markup around library predicate names.

Julien.

diff --git a/compiler/options.m b/compiler/options.m
index dd4a6c7..31a706e 100644
--- a/compiler/options.m
+++ b/compiler/options.m
@@ -3531,29 +3531,29 @@ options_help_warning -->
  %       "\tThis option causes the compiler to halt if it cannot perform",
  %       "\tan auto-parallelization requested by a feedback file.",
          "--inhibit-accumulator-warnings",
-        "\tDon't warn about argument order rearrangement caused",
-        "\tby --introduce-accumulators.",
+        "\tDo not warn about argument order rearrangement caused",
+        "\tby `--introduce-accumulators'.",
          "--no-warn-singleton-vars, --no-warn-singleton-variables",
-        "\tDon't warn about variables which only occur once.",
+        "\tDo not warn about variables which only occur once.",
          "--no-warn-overlapping-scopes",
-        "\tDon't warn about variables which occur in overlapping scopes.",
+        "\tDo not warn about variables which occur in overlapping scopes.",
          "--no-warn-det-decls-too-lax",
-        "\tDon't warn about determinism declarations",
+        "\tDo not warn about determinism declarations",
          "\twhich could have been stricter.",
          "--no-warn-inferred-erroneous",
-        "\tDon't warn about procedures whose determinism is inferred",
+        "\tDo not warn about procedures whose determinism is inferred",
          "\terroneous but whose determinism declarations are laxer.",
          "--no-warn-insts-without-matching-type",
-        "\tDon't warn about insts that are not consistent with any",
+        "\tDo not warn about insts that are not consistent with any",
          "\tof the types in scope.",
          % XXX disabled until compiler unused_imports,
          % don't forget to update the user_guide.texi
          % "--no-warn-unused-imports",
-        % "\tDon't warn about modules that are imported but not used.",
+        % "\tDo not warn about modules that are imported but not used.",
          "--warn-unused-imports",
          "\tWarn about modules that are imported but not used.",
          "--no-warn-nothing-exported",
-        "\tDon't warn about modules which export nothing.",
+        "\tDo not warn about modules which export nothing.",
          "--warn-unused-args",
          "\tWarn about predicate arguments which are not used.",
          "--warn-interface-imports",
@@ -3589,7 +3589,7 @@ options_help_warning -->
          "\tWarn about multiple calls to a predicate with the",
          "\tsame input arguments.",
          "--no-warn-missing-module-name",
-        "\tDisable warnings for modules that do no start with",
+        "\tDisable warnings for modules that do not start with",
          "\ta `:- module' declaration.",
          "--no-warn-wrong-module-name",
          "\tDisable warnings for modules whose `:- module'",
@@ -3603,8 +3603,8 @@ options_help_warning -->
          "--warn-non-tail-recursion",
          "\tWarn about any directly recursive calls that are not tail calls.",
          "--no-warn-up-to-date",
-        "\tDon't warn if targets specified on the command line",
-        "\twith `--make' are already up to date.",
+        "\tDo not warn if targets specified on the command line",
+        "\twith `--make' are already up-to-date.",
          "--no-warn-stubs",
          "\tDisable warnings about procedures for which there are no",
          "\tclauses.  Note that this option only has any effect if",
@@ -3688,7 +3688,7 @@ options_help_verbosity -->
          "\tReport the command line arguments.",
          "--report-cmd-line-args-in-doterr",
          "\tReport the command line arguments for compilations whose output",
-        "\tmmake normally redirects to a .err file.",
+        "\tmmake normally redirects to a `.err' file.",
          "-S, --statistics",
          "\tOutput messages about the compiler's time/space usage.",
          "\tAt the moment this option implies `--no-trad-passes', so you get",
@@ -3716,7 +3716,7 @@ options_help_verbosity -->
          "--debug-modes-verbose",
          "\tOutput detailed debugging traces of the mode checking.",
          "--debug-modes-pred-id <n>",
-        "\tWith --debug-modes, restrict the debugging traces to the",
+        "\tWith `--debug-modes', restrict the debugging traces to the",
          "\tmode checking of the predicate or function with the specified",
          "\tpred id.",
  % --debug-dep-par-conj <n> is a developer only option,
@@ -3766,7 +3766,7 @@ options_help_verbosity -->
          "\toption.",
          "--debug-indirect-reuse",
          "\tOutput detailed debugging traces of the indirect reuse pass of",
-        "\t`--structure-reuse' option.",
+        "\tthe `--structure-reuse' option.",
          "--debug-type-rep",
          "\tOutput debugging traces of type representation choices."
  % The mode constraints code is still experimental so this option is
@@ -3802,7 +3802,7 @@ options_help_output -->
          "--generate-module-order",
          "\tOutput the strongly connected components of the module",
          "\tdependency graph in top-down order to `<module>.order'.",
-        "\tImplies --generate-dependencies.",
+        "\tImplies `--generate-dependencies'.",
          "--generate-standalone-interface <basename>",
          "\tOutput a stand-alone interface.",
          "\t<basename> is used as the basename of any files generated for",
@@ -3892,7 +3892,7 @@ options_help_output -->
          "\tPrint the target architecture to the standard output.",
          "--output-class-dir, --output-class-directory",
          "\tPrint to standard output the name of the directory in which",
-        "\tgenerated Java class will be placed."
+        "\tgenerated Java class files will be placed."
      ]).

  :- pred options_help_aux_output(io::di, io::uo) is det.
@@ -4167,9 +4167,8 @@ options_help_ctgc -->
          "--structure-reuse, --ctgc",
          "\tPerform structure reuse analysis (Compile Time Garbage ",
          "\tCollection).",
-        "--structure-reuse-constraint {same_cons_id, ",
-        "\twithin_n_cells_difference}, --ctgc-constraint {same_cons_id,",
-        "\twithin_n_cells_difference}",
+        "--structure-reuse-constraint {same_cons_id, within_n_cells_difference}",
+        "--ctgc-constraint {same_cons_id, within_n_cells_difference}",
          "\tConstraint on the way we allow structure reuse. `same_cons_id'",
          "\tspecifies that reuse is only allowed between terms of the same",
          "\ttype and constructor. `within_n_cells_difference' states that",
@@ -4285,7 +4284,7 @@ options_help_compilation_model -->
          "-s <grade>, --grade <grade>",
          "\tSelect the compilation model. The <grade> should be one of",
          "\tthe base grades `none', `reg', `jump', `asm_jump', `fast', ",
-        "\t`asm_fast', `hl', `hlc', `il', or `java',",
+        "\t`asm_fast', `hl', `hlc', `il', `java', `csharp' or `erlang'",
  % The hl, hl_nest, and hlc_nest are not yet documented, because
  % the --high-level-data option is not yet supported for C,
  % and the --gcc-nested-functions option is not yet documented.
@@ -4472,11 +4471,11 @@ options_help_compilation_model -->
          "\tthis option",

          "--record-term-sizes-as-words\t\t(grade modifier: `.tsw')",
-        "\tAugment each heap cells with its size in words.",
+        "\tAugment each heap cell with its size in words.",
          "--record-term-sizes-as-cells\t\t(grade modifier: `.tsc')",
-        "\tAugment each heap cells with its size in cells.",
+        "\tAugment each heap cell with its size in cells.",

-        "--experimental-complexity=<filename>\t\t",
+        "--experimental-complexity <filename>\t\t",
          "\tEnable experimental complexity analysis for the predicates",
          "\tlisted in the given file.",
          "\tThis option is supported for the C back-end, with",
@@ -4526,11 +4525,12 @@ options_help_compilation_model -->
          "\t`maybe_thread_safe' option is treated as though it has a",
          "\t`thread_safe' attribute.  `no' means that the foreign",
          "\tprocedure is treated as though it has a `not_thread_safe'",
-        "\tattribute.  The default is no.",
+        "\tattribute.  The default is `no'.",
          "--single-prec-float\t\t(grade modifier: `.spf')",
          "\tUse single precision floats so that, on 32-bit machines,",
          "\tfloating point values don't need to be boxed.  Double",
-        "\tprecision floats are used by default."
+        "\tprecision floats are used by default.",
+        "\tThis option is not supported for the C#, Java or Erlang back-ends."
          % This is commented out as this feature is still experimental.
          %"--extend-stacks-when-needed",
          %"\tSpecify that code that increments a stack pointer must",
@@ -5034,14 +5034,14 @@ options_help_hlds_hlds_optimization -->
          "\tDisable the inlining of simple procedures.",
          "--no-inline-builtins",
          "\tGenerate builtins (e.g. arithmetic operators) as calls to",
-        "\tout of line procedures.  This is done by default when,",
+        "\tout-of-line procedures.  This is done by default when,",
          "\tdebugging, as without this option the execution of",
          "\tbuiltins is not traced.",
          "--no-inline-single-use",
          "\tDisable the inlining of procedures called only once.",
          "--inline-call-cost <cost>",
          "\tAssume that the cost of a call is the given parameter.",
-        "\tUsed only in conjunction with --inline-compound-threshold.",
+        "\tUsed only in conjunction with `--inline-compound-threshold'.",
          "\tmultiplied by the number of times it is called,",
          "--inline-compound-threshold <threshold>",
          "\tInline a procedure if its size (measured roughly",
@@ -5144,7 +5144,7 @@ options_help_hlds_hlds_optimization -->
          "\t`--optimize-higher-order' and `--type-specialization'.",
          "\tGoal size is measured as the number of calls, unifications",
          "\tand branched goals.",
-        "--higher-order-arg-limit",
+        "--higher-order-arg-limit <limit>",
          "\tSet the maximum size of higher-order arguments to",
          "\tbe specialized by `--optimize-higher-order' and",
          "\t`--type-specialization'.",
@@ -5276,7 +5276,7 @@ options_help_hlds_llds_optimization -->
      io.write_string("\n    Medium-level (HLDS -> LLDS) optimizations:\n"),
      write_tabbed_lines([
          "--no-smart-indexing",
-        "\tGenerate switches as a simple if-then-else chains;",
+        "\tGenerate switches as simple if-then-else chains;",
          "\tdisable string hashing and integer table-lookup indexing.",
  % The following options are for developers only --they provide finer grained
  % control over smart indexing.
@@ -5459,9 +5459,9 @@ options_help_output_optimization -->
          "\twhich produces the most efficient code but tends to",
          "\tseverely stress the C compiler on large modules.",
          "--no-local-thread-engine-base",
-        "\tDon't copy the thread-local Mercury engine base address",
+        "\tDo not copy the thread-local Mercury engine base address",
          "\tinto local variables. This option only affects low-level",
-        "\tparallel grades not using the global register variables",
+        "\tparallel grades not using the GNU C global register variables",
          "\textension."
      ]).

@@ -5635,8 +5635,8 @@ options_help_link -->
          "\tLink with the specified object or archive file.",
          "--search-lib-files-dir <directory>",
          "--search-library-files-directory <directory>",
-        "\tSearch <directory> for Mercury library files have not yet been",
-        "\tinstalled.  Similar to adding <directory> using all of the",
+        "\tSearch <directory> for Mercury library files that have not yet",
+        "\tbeen installed.  Similar to adding <directory> using all of the",
          "\t`--search-directory', `--intermod-directory',",
          "\t`--library-directory', `--init-file-directory' and",
          "\t`--c-include-directory' options.",
@@ -5658,11 +5658,11 @@ options_help_link -->
          "--ml <library>, --mercury-library <library>",
          "\tLink with the specified Mercury library.",

-        "--linkage {shared|static}",
+        "--linkage {shared, static}",
          "\tSpecify whether to use shared or static linking for",
          "\texecutables.  Shared libraries are always linked",
          "\twith `--linkage shared'.",
-        "--mercury-linkage {shared|static}",
+        "--mercury-linkage {shared, static}",
          "\tSpecify whether to use shared or static linking when",
          "\tlinking an executable with Mercury libraries.",
          "\tShared libraries are always linked with",
@@ -5729,7 +5729,7 @@ options_help_link -->
          "\tSign the current assembly with the strong name contained",
          "\tin the specified key file.",
          "\t(This option is only meaningful when generating library",
-        "\tassemblies with the C# backend.)",
+        "\tassemblies with the C# back-end.)",

          "--cstack-reserve-size <size>",
          "\tSet the total size of the C stack in virtual memory for",
@@ -5779,7 +5779,7 @@ options_help_build_system -->
          "\tNote that this option also enables `--use-subdirs'.",
          "-r, --rebuild",
          "\tSame as `--make', but always rebuild the target files",
-        "\teven if they are up to date.",
+        "\teven if they are up-to-date.",
          "-k, --keep-going",
          "\tWith `--make', keep going as far as",
          "\tpossible even if an error is detected.",
@@ -5845,7 +5845,7 @@ options_help_build_system -->
          "\tRemove grades that contain the specified component from the",
          "\tset of library grades to be installed.",
          "\t(This option does not work with Mmake, only `mmc --make'.)",
-        "--lib-linkage {shared|static}",
+        "--lib-linkage {shared, static}",
          "\tSpecify whether libraries should be installed for shared",
          "\tor static linking.  This option can be specified multiple",
          "\ttimes.  By default libraries will be installed for",
@@ -5913,8 +5913,8 @@ options_help_build_system -->
          "\tprograms will be invoked.",
          "\tThe <type> should be one of `posix', `cygwin', `msys', or",
          "\t`windows'.",
-        "\tThis option is equivalent to setting all of --host-env-type,",
-        "\t--system-env-type and --target-env-type to <type>.",
+        "\tThis option is equivalent to setting all of `--host-env-type',",
+        "\t`--system-env-type' and `--target-env-type' to <type>.",
          "--host-env-type <type>",
          "\tSpecify the environment type in which the compiler will be",
          "\tinvoked.",
@@ -5922,7 +5922,7 @@ options_help_build_system -->
          "\tSpecify the environment type in which external programs invoked",
          "\tby the compiler will run.",
          "\tIf not specified, this defaults to the value given by",
-        "\t --host-env-type.",
+        "\t`--host-env-type'.",
          "--target-env-type <type>",
          "\tSpecify the environment type in which generated programs will be",
          "\tinvoked."
diff --git a/doc/reference_manual.texi b/doc/reference_manual.texi
index 76ac6a8..5ef49be 100644
--- a/doc/reference_manual.texi
+++ b/doc/reference_manual.texi
@@ -8045,7 +8045,7 @@ type @samp{int}.
  @node Using pragma foreign_proc for C#
  @subsubsection Using pragma foreign_proc for C#

-The C# code from C# pragma foreign_proc declarations will be placed in
+The C# code from C# @samp{pragma foreign_proc} declarations will be placed in
  the bodies of static member functions of an automatically generated C# class.
  Since such C# code will become part of a static member function,
  it must not refer to the @samp{this} keyword.
@@ -8229,12 +8229,13 @@ the Mercury constructor @samp{foo} would be @code{foo}.
  @node Using pragma foreign_proc for Java
  @subsubsection Using pragma foreign_proc for Java

-The Java code from Java pragma foreign_proc declarations will be placed in
-the bodies of static member functions of an automatically generated Java class.
-Since such Java code will become part of a static member function,
-it must not refer to the @samp{this} keyword.
-It may however refer to static member variables or static member
-functions declared with @samp{pragma foreign_code}.
+The Java code from Java @samp{pragma foreign_proc} declarations will be placed
+in the bodies of static member functions of an automatically generated Java
+class.
+Since such Java code will become part of a static member function, it must not
+refer to the @samp{this} keyword.
+It may however refer to static member variables or static member functions
+declared with @samp{pragma foreign_code}.

  The input and output variables for a Java @samp{pragma foreign_proc} will
  have Java types corresponding to their Mercury types.  The exact rules
diff --git a/doc/transition_guide.texi b/doc/transition_guide.texi
index 725d20a..844a79e 100644
--- a/doc/transition_guide.texi
+++ b/doc/transition_guide.texi
@@ -499,10 +499,10 @@ factorial(N, F) :-
  @node All-solutions
  @chapter All-solutions predicates.

-Prolog's various different all-solutions predicates (findall/3, bagof/3,
-and setof/3) all have semantic problems.
-Mercury has a different set of all-solutions predicates (solutions/2,
-solutions_set/2, and unsorted_solutions/2 --- all defined in the library
+Prolog's various different all-solutions predicates (@samp{findall/3}, @samp{bagof/3},
+and @samp{setof/3}) all have semantic problems.
+Mercury has a different set of all-solutions predicates (@samp{solutions/2},
+ at samp{solutions_set/2}, and @samp{unsorted_solutions/2} --- all defined in the library
  module @samp{solutions}) that
  address the problems of the Prolog versions.
  To avoid the variable scoping problems of the Prolog
@@ -540,8 +540,8 @@ member_of_both(List1, List2, X) :-
  and in fact that's exactly how the Mercury compiler implements lambda
  expressions.

-The current implementation of solutions/2 is a ``zero-copy'' implementation,
-so the cost of solutions/2 is proportional to the number of solutions, but
+The current implementation of @samp{solutions/2} is a ``zero-copy'' implementation,
+so the cost of @samp{solutions/2} is proportional to the number of solutions, but
  independent of the size of the solutions.  (This may change in
  future implementations.)

diff --git a/doc/user_guide.texi b/doc/user_guide.texi
index 78538c3..c5d889a 100644
--- a/doc/user_guide.texi
+++ b/doc/user_guide.texi
@@ -6420,7 +6420,7 @@ if it finds any syntax errors in the program.
  @sp 1
  @item --inhibit-accumulator-warnings
  @findex --inhibit-accumulator-warnings
-Don't warn about argument order rearrangement caused by
+Do not warn about argument order rearrangement caused by
  @samp{--introduce-accumulators}.

  @sp 1
@@ -6430,7 +6430,7 @@ Don't warn about argument order rearrangement caused by
  @findex --no-warn-singleton-variables
  @findex --warn-singleton-vars
  @findex --warn-singleton-variables
-Don't warn about variables which only occur once.
+Do not warn about variables which only occur once.

  @sp 1
  @item --no-warn-missing-det-decls
@@ -6446,21 +6446,21 @@ determinism inference for non-exported predicates.
  @item --no-warn-det-decls-too-lax
  @findex --no-warn-det-decls-too-lax
  @findex --warn-det-decls-too-lax
-Don't warn about determinism declarations
+Do not warn about determinism declarations
  which could have been stricter.

  @sp 1
  @item --no-warn-inferred-erroneous
  @findex --no-warn-inferred-erroneous
  @findex --warn-inferred-erroneous
-Don't warn about procedures whose determinism is inferred erroneous
+Do not warn about procedures whose determinism is inferred erroneous
  but whose determinism declarations are laxer.

  @sp 1
  @item --no-warn-insts-without-matching-type
  @findex --no-warn-insts-without-matching-type
  @findex --warn-insts-without-matching-type
-Don't warn about insts that are not consistent with any
+Do not warn about insts that are not consistent with any
  types in scope.

  @sp 1
@@ -6469,13 +6469,13 @@ types in scope.
  @findex --no-warn-unused-imports
  @findex --warn-unused-imports
  Warn about modules that are imported but not used.
- at c Don't warn about modules that are imported but not used.
+ at c Do not warn about modules that are imported but not used.

  @sp 1
  @item --no-warn-nothing-exported
  @findex --no-warn-nothing-exported
  @findex --warn-nothing-exported
-Don't warn about modules whose interface sections have no
+Do not warn about modules whose interface sections have no
  exported predicates, functions, insts, modes or types.

  @sp 1
@@ -6576,8 +6576,8 @@ target code (e.g. gcc).
  @item --no-warn-up-to-date
  @findex --no-warn-up-to-date
  @findex --warn-up-to-date
-Don't warn if targets specified on the command line
-with @samp{--make} are already up to date.
+Do not warn if targets specified on the command line
+with @samp{--make} are already up-to-date.

  @sp 1
  @item --no-warn-stubs
@@ -6745,7 +6745,7 @@ Report the command line arguments.
  @item --report-cmd-line-args-in-doterr
  @findex --report-cmd-line-args-in-doterr
  Report the command line arguments for compilations whose output
-mmake normally redirects to a .err file.
+mmake normally redirects to a @samp{.err} file.

  @sp 1
  @item -S
@@ -8272,8 +8272,7 @@ attribute.  The default is @samp{no}.
  Use single precision floats so that, on 32-bit machines
  floating point values don't need to be boxed.  Double
  precision floats are used by default.
-This option is not yet supported for the IL, C# or Java back-ends.
-This option will not be supported for the Erlang back-end.
+This option is not supported for the C#, Java or Erlang back-ends.

  @c RBMM is undocumented since it is still experimental.
  @c @sp 1
@@ -8522,7 +8521,7 @@ Assume that @var{n} float temporaries will fit into real machine registers.
  @menu
  * Overall optimization options::
  * High-level (HLDS -> HLDS) optimization options::
-* MLDS backend (MLDS -> MLDS) optimization options::
+* MLDS back-end (MLDS -> MLDS) optimization options::
  * Erlang (HLDS -> ELDS) optimization options::
  * Medium-level (HLDS -> LLDS) optimization options::
  * Low-level (LLDS -> LLDS) optimization options::
@@ -8673,7 +8672,7 @@ Disable the inlining of simple procedures.
  @item --no-inline-builtins
  @findex --no-inline-builtins
  Generate builtins (e.g.@: arithmetic operators) as calls to
-out of line procedures.  This is done by default when debugging,
+out-of-line procedures.  This is done by default when debugging,
  as without this option the execution of builtins is not traced.

  @item --no-inline-single-use
@@ -8988,8 +8987,8 @@ This information is used to reduce the overhead of minimal model tabling.

  @end table

- at node MLDS backend (MLDS -> MLDS) optimization options
- at subsection MLDS backend (MLDS -> MLDS) optimization options
+ at node MLDS back-end (MLDS -> MLDS) optimization options
+ at subsection MLDS back-end (MLDS -> MLDS) optimization options
  @cindex MLDS

  These optimizations are applied to the medium level
@@ -9070,7 +9069,7 @@ will still be created as static constants.
  @item --no-smart-indexing
  @findex --no-smart-indexing
  @findex --smart-indexing
-Generate switches as a simple if-then-else chains;
+Generate switches as simple if-then-else chains;
  disable string hashing and integer table-lookup indexing.

  @sp 1
@@ -9292,9 +9291,9 @@ but tends to severely stress the C compiler.
  @sp 1
  @item --no-local-thread-engine-base
  @findex --no-local-thread-engine-base
-Don't copy the thread-local Mercury engine base address
+Do not copy the thread-local Mercury engine base address
  into local variables. This option only affects low-level
-parallel grades not using the global register variables
+parallel grades not using the GNU C global register variables
  extension.

  @end table
@@ -9766,7 +9765,7 @@ Append the specified directory to the framework search path.
  Sign the current assembly with the strong name contained in the
  specified key file.
  (This option is only meaningful when generating library assemblies
-with the C# backend.)
+with the C# back-end.)

  @sp 1
  @item --cstack-reserve-size @var{size}
@@ -10832,7 +10831,7 @@ code with @samp{--no-static-ground-terms}.
  @node Foreign language interface
  @chapter Foreign language interface

-The Mercury foreign language interfaces allows pragma foreign_proc to
+The Mercury foreign language interfaces allows @samp{pragma foreign_proc} to
  specify multiple implementations (in different foreign programming
  languages) for a procedure.

@@ -10840,33 +10839,33 @@ If the compiler generates code for a procedure using a back-end for which
  there are multiple applicable foreign languages, it will choose the
  foreign language to use for each procedure according to a builtin ordering.

-If the language specified in a foreign_proc is not available for a
-particular backend, it will be ignored.
+If the language specified in a @samp{foreign_proc} is not available for a
+particular back-end, it will be ignored.

-If there are no suitable foreign_proc clauses for a particular
+If there are no suitable @samp{foreign_proc} clauses for a particular
  procedure but there are Mercury clauses, they will be used instead.

  @table @asis

  @item @samp{C}
-This is the default foreign language on all backends which compile to C.
-Only available on backends that compile to C.
+This is the default foreign language on all back-ends which compile to C.
+Only available on back-ends that compile to C.

  @item @samp{C#}
-Only available on backends that compile to IL or C#.
+Only available on back-ends that compile to IL or C#.
  This is the second preferred foreign language for IL code generation.

  @item @samp{Erlang}
-This is the only foreign language for backends which compile to Erlang.
+This is the only foreign language for back-ends which compile to Erlang.

  @item @samp{IL}
  IL is the intermediate language of the .NET Common Language
  Runtime (sometimes also known as CIL or MSIL).
-Only available on backends that compile to IL.
+Only available on back-ends that compile to IL.
  This is the preferred foreign language for IL code generation.

  @item @samp{Java}
-This is the only foreign language for backends which compile to Java.
+This is the only foreign language for back-ends which compile to Java.

  @end table




More information about the reviews mailing list