[m-rev.] for review: reduce the number of publicly documented base grades

Julien Fischer jfischer at opturion.com
Wed Apr 15 10:05:16 AEST 2015


Any takers to review this one?

Cheers,
Julien.

On Fri, 10 Apr 2015, Julien Fischer wrote:

>
> For review by anyone.
>
> As per the discussion in this thread, 
> <http://www.mercurylang.org/list-archives/reviews/2014-September/017300.html>.
> This does not implement everything discussed in that thread, but it's a 
> start.
>
> ------------------------------
>
> Reduce the number of publicly documented base grades.
>
> Currently, 14 out of a possible 15 base grades are publicly documented (to 
> some
> extent).  This changes hides the user facing documentation for seven of the
> less useful base grades, namely: asm_jump, fast, jump, hlc_nest, hl, hl_nest
> and il.
>
> Change the configure script so that it will not automatically set the LLDS 
> base
> grade to asm_jump, fast or jump.  (Developers can still manually select these
> base grades using configure's '--with-llds-base-grade' option.)
>
> Hide the user facing documentation for the .pic_reg and .agc grade 
> components.
> The former is an internal thing and the latter is an experimental feature
> (which currently doesn't work anyway).
>
> configure.ac:
> 	When choosing the LLDS base grade, use the first one of asm_fast,
> 	reg or none that is supported.  Do not attempt to use asm_jump,
> 	fast or jump.
>
> 	Disable the documentation for the '--enable-agc-grades' option.
> 	(The option itself is still supported.)
>
> compiler/options.m:
> doc/user_guide.texi:
> 	Comment out, ignore or delete (as appropriate) documentation related
> 	to the seven base grades and two grade components mentioned above.
>
> 	Delete a left-over reference to the MPS collector.
>
> 	Delete references to the IL backend in various spots.
>
> 	Add reference to the Erlang backend where appropriate.
>
> .INSTALL.in:
> 	Delete the description of the '--enable-agc-grades' option.
>
> README.MinGW:
> README.MinGW-cross:
> 	Delete references to the asm_jump grade.
>
> Julien.
>
> diff --git a/.INSTALL.in b/.INSTALL.in
> index 150d756..5ee0dc9 100755
> --- a/.INSTALL.in
> +++ b/.INSTALL.in
> @@ -126,9 +126,6 @@ make install
> #          The option --disable-nogc-grades prevents the installation
> #          of grades without garbage collection.
> #
> -#          The option --enable-agc-grades causes the installation
> -#          of grades that support type-accurate garbage collection.
> -#
> #          The option --disable-prof-grades prevents the installation
> #          of grades that support profiling.
> #
> diff --git a/README.MinGW b/README.MinGW
> index 62ba269..bbeb359 100644
> --- a/README.MinGW
> +++ b/README.MinGW
> @@ -2,9 +2,9 @@ This file documents the port of Mercury to Windows using 
> either the MinGW
> or MinGW64 ports of GCC, i.e. the i686-pc-mingw32 or x86_64-w64-mingw32
> configurations.
>
> -NOTE: There are problems with 64-bit executables in some low-level C grades,
> -namely the 'asm_fast*' and 'asm_jump*' grades. The 'none*' and 'reg*' grades
> -do appear to work correctly in our limited testing.
> +NOTE: There are currently problems with 64-bit executalbes in the 
> 'asm_fast*'
> +grade.  The 'none*' and 'reg*' grades do appear to work correctly in our
> +limited testing.
>
> -----------------------------------------------------------------------------
>
> diff --git a/README.MinGW-cross b/README.MinGW-cross
> index 5d4b5d5..6a3689f 100644
> --- a/README.MinGW-cross
> +++ b/README.MinGW-cross
> @@ -7,9 +7,9 @@ After copying and adjusting some paths, the Mercury 
> installation should be
> usable on Windows.  When combined with a native Mercury compiler, it can be
> used to cross-compile Mercury applications for Windows.
>
> -NOTE: There are problems with 64-bit executables in some low-level C grades,
> -namely 'asm_fast*' and 'asm_jump*' grades. The 'none*' and 'reg*' grades
> -do appear to work correctly in our limited testing.
> +NOTE: There are currently problems with 64-bit executalbes in the 
> 'asm_fast*'
> +grade.  The 'none*' and 'reg*' grades do appear to work correctly in our
> +limited testing.
>
> -----------------------------------------------------------------------------
>
> diff --git a/compiler/options.m b/compiler/options.m
> index 4c957e4..0979a90 100644
> --- a/compiler/options.m
> +++ b/compiler/options.m
> @@ -3863,7 +3863,7 @@ options_help_output -->
>         "\tCheck the module for errors, but do not generate any code.",
>         "-C, --target-code-only",
>         "\tGenerate target code (i.e. C code in `<module>.c',",
> -        "\tIL code in `<module>.il', or Java code in",
> +        "\tC# code in `<module>.cs', or Java code in",
>         "\t`<module>.java'), but not object code.",
>         "-c, --compile-only",
>         "\tGenerate C code in `<module>.c' and object code in `<module>.o'",
> @@ -4311,16 +4311,27 @@ 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', `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.
> -% The ilc grade is not documented because it is not useful;
> -% it has been superceded by the il grade.
> +        "\tthe base grades `none', `reg', `asm_fast', `hlc', `java',",
> +        "\t`csharp' or `erlang'",
> +
> +% The following base grade components are not publicly documented:
> +%
> +%  asm_jump
> +%  fast +%  jump        These three are not tested as much as the other
> +%              three LLDS base grades and have proved to be a bit
> +%              delicate in any case.
> +%
> +%  hlc_nest +%  hl_nest     These two rely on GCC nested functions 
> extension.
> +%
> +%  hl          Not useful.
> +%  il          Currently broken.
> +%  ilc         Deprecated.
> +%
>         "\tor one of those with one or more of the grade modifiers",
>         "\t`.gc', `.prof', `.memprof', `.profdeep', `.tr',",
> -        "\t`.spf', `.stseg', `.debug', `.par' and/or `.pic_reg' appended.",
> +        "\t`.spf', `.stseg', `.debug', and/or `.par' appended.",
>         "\tDepending on your particular installation, only a subset",
>         "\tof these possible grades will have been installed.",
>         "\tAttempting to use a grade which has not been installed",
> @@ -4329,16 +4340,15 @@ options_help_compilation_model -->
>
>     io.write_string("\n    Target selection compilation model options:\n"),
>     write_tabbed_lines([
> -        "--target c\t\t\t(grades: none, reg, jump, fast,",
> -        "\t\t\t\t\tasm_jump, asm_fast, hl, hlc)",
> -        "--target il\t\t\t(grades: il)",
> +        %"--target c\t\t\t(grades: none, reg, jump, fast,",
> +        %"\t\t\t\t\tasm_jump, asm_fast, hl, hlc)",
> +        %"--target il\t\t\t(grades: il)",
> +        "--target c\t\t\t(grades: none, reg, asm_fast)",
>         "--target csharp\t\t\t(grades: csharp)",
>         "--target java\t\t\t(grades: java)",
>         "--target erlang\t\t\t(grades: erlang)",
> -        "\tSpecify the target language: C, IL, C#, Java or Erlang.",
> -        "\tThe default is C.  ""IL"" (also known as ""CIL"" or ""MSIL"")",
> -        "\tis the Intermediate Language for the .NET Common Language",
> -        "\tRuntime.",
> +        "\tSpecify the target language: C, C#, Java or Erlang.",
> +        "\tThe default is C.",
>         "\tTargets other than C imply `--high-level-code' (see below).",
>
> % IL options are commented out to reduce confusion.
> @@ -4417,13 +4427,13 @@ options_help_compilation_model -->
>         "\tgenerated code, and also output some profiling",
>         "\tinformation (the static call graph) to the file",
>         "\t`<module>.prof'.",
> -        "\tThis option is not supported for the IL, C# or Java back-ends.",
> +        "\tThis option is not supported for the C#, Erlang or Java 
> back-ends.",
>         "--memory-profiling\t\t(grade modifier: `.memprof')",
>         "\tEnable memory and call profiling.",
> -        "\tThis option is not supported for the IL, C# or Java back-ends.",
> +        "\tThis option is not supported for the C#, Erlang or Java 
> back-ends.",
>         "--deep-profiling\t\t(grade modifier: `.profdeep')",
>         "\tEnable deep profiling.",
> -        "\tThis option is not supported for the high-level C, IL, C#",
> +        "\tThis option is not supported for the high-level C, C#, Erlang",
>         "\tor Java back-ends.",
>
> % This option is not documented, it is intended for use by developers only.
> @@ -4531,14 +4541,14 @@ options_help_compilation_model -->
>         "\t`accurate' is our own type-accurate copying GC;",
>         "\tit requires `--high-level-code'.",
>         "\t`automatic' means the target language provides it.",
> -        "\tThis is the case for the IL, C#, Java and Erlang back-ends,",
> +        "\tThis is the case for the C#, Java and Erlang back-ends,",
>         "\twhich always use the garbage collector of the underlying",
>         "\timplementation.",
>         "--use-trail\t\t\t(grade modifier: `.tr')",
>         "\tEnable use of a trail.",
>         "\tThis is necessary for interfacing with constraint solvers,",
>         "\tor for backtrackable destructive update.",
> -        "\tThis option is not yet supported for the IL, C#, Java",
> +        "\tThis option is not yet supported for the C#, Java",
>         "\tor Erlang back-ends.",
>         "--trail-segments\t\t\t(grade modifier: `.trseg')",
>         "\tAs above, but use a dynamically sized trail that is composed",
> @@ -4575,30 +4585,37 @@ options_help_compilation_model -->
>     io.write_string("\n    LLDS back-end compilation model options:\n"),
>     write_tabbed_lines([
>
> -        "--gcc-global-registers\t\t(grades: reg, fast, asm_fast)",
> -        "--no-gcc-global-registers\t(grades: none, jump, asm_jump)",
> +        %"--gcc-global-registers\t\t(grades: reg, fast, asm_fast)",
> +        %"--no-gcc-global-registers\t(grades: none, jump, asm_jump)",
> +        "--gcc-global-registers\t\t(grades: reg, asm_fast)",
> +        "--no-gcc-global-registers\t(grades: none)",
>         "\tSpecify whether or not to use GNU C's",
>         "\tglobal register variables extension.",
>         "\tThis option is ignored if the `--high-level-code' option is",
>         "\tenabled.",
> -        "--gcc-non-local-gotos\t\t(grades: jump, fast, asm_jump, asm_fast)",
> +        %"--gcc-non-local-gotos\t\t(grades: jump, fast, asm_jump, 
> asm_fast)",
> +        %"--no-gcc-non-local-gotos\t(grades: none, reg)",
> +        "--gcc-non-local-gotos\t\t(grades: asm_fast)",
>         "--no-gcc-non-local-gotos\t(grades: none, reg)",
>         "\tSpecify whether or not to use GNU C's",
>         "\t""labels as values"" extension.",
>         "\tThis option is ignored if the `--high-level-code' option is",
>         "\tenabled.",
> -        "--asm-labels\t\t\t(grades: asm_jump, asm_fast)",
> -        "--no-asm-labels\t\t\t(grades: none, reg, jump, fast)",
> +        %"--asm-labels\t\t\t(grades: asm_jump, asm_fast)",
> +        %"--no-asm-labels\t\t\t(grades: none, reg, jump, fast)",
> +        "--asm-labels\t\t\t(grades: asm_fast)",
> +        "--no-asm-labels\t\t\t(grades: none, reg)",
>         "\tSpecify whether or not to use GNU C's",
>         "\tasm extensions for inline assembler labels.",
>         "\tThis option is ignored if the `--high-level-code' option is",
>         "\tenabled.",
> -        "--pic-reg\t\t\t(grade modifier: `.pic_reg')",
> -        "[For Unix with intel x86 architecture only]",
> -        "\tSelect a register usage convention that is compatible,",
> -        "\twith position-independent code (gcc's `-fpic' option).",
> -        "\tThis is necessary when using shared libraries on Intel x86",
> -        "\tsystems running Unix.  On other systems it has no effect.",
> +        % This option is a developer only option.
> +        %"--pic-reg\t\t\t(grade modifier: `.pic_reg')",
> +        %"[For Unix with intel x86 architecture only]",
> +        %"\tSelect a register usage convention that is compatible,",
> +        %"\twith position-independent code (gcc's `-fpic' option).",
> +        %"\tThis is necessary when using shared libraries on Intel x86",
> +        %"\tsystems running Unix.  On other systems it has no effect.",
>         "--stack-segments\t\t(grade modifier: `.stseg')",
>         "\tSpecify whether to use dynamically sized stacks that are",
>         "\tcomposed of small segments.  This can help to avoid stack",
> @@ -4618,7 +4635,8 @@ options_help_compilation_model -->
> %       "-H, --high-level-code\t\t\t(grades: hl_nest, hlc_nest)",
> % The ilc grade is not documented because it is not useful;
> % it has been superceded by the il grade.
> -        "-H, --high-level-code\t\t\t(grades: hl, hlc, il, csharp, java)",
> +        %"-H, --high-level-code\t\t\t(grades: hl, hlc, il, csharp, java)",
> +        "-H, --high-level-code\t\t\t(grades: hlc, csharp, java)",
>         "\tUse an alternative back-end that generates high-level code",
>         "\trather than the very low-level code that is generated by our",
>         "\toriginal back-end.",
> @@ -4626,10 +4644,10 @@ options_help_compilation_model -->
> % because the --gcc-nested-functions option is not yet documented.
> % because it is not yet supported
> %       "--high-level-data\t\t\t(grades: hl, hl_nest, il, csharp, java)",
> -        "--high-level-data\t\t\t(grades: hl, il, csharp, java)",
> +        "--high-level-data\t\t\t(grades: csharp, java)",
>         "\tUse an alternative higher-level data representation.",
> %       "--high-level\t\t\t(grades: hl, hl_nest, il, csharp, java)",
> -        "--high-level\t\t\t(grades: hl, il, csharp, java)",
> +        "--high-level\t\t\t(grades: csharp, java)",
>         "\tAn abbreviation for `--high-level-code --high-level-data'."
> % The --gcc-nested-functions option is not yet documented,
> % because it doesn't pass our test suite, and it is
> @@ -5507,8 +5525,8 @@ options_help_target_code_compilation -->
>         "\tEnable debugging of the generated target code.",
>         "\tIf the target language is C, this has the same effect as",
>         "\t`--c-debug' (see below).",
> -        "\tIf the target language is IL or C#, this causes the compiler to",
> -        "\tpass `/debug' to the IL assembler or C# compiler.)",
> +        "\tIf the target language is C#, this causes the compiler to",
> +        "\tpass `/debug' to the C# compiler.)",
>
>         "--cc <compiler-name>",
>         "\tSpecify which C compiler to use.",
> diff --git a/configure.ac b/configure.ac
> index dfd1609..ebf5270 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -3287,15 +3287,15 @@ AC_SUBST([SYMPREFIX])
> # BEST_LLDS_BASE_GRADE is the most efficient of the LLDS->C base grades
> # that can be supported.  If the user explicitly chooses a base grade
> # using --with-llds-base-grade then we use that instead.
> +#
> +# NOTE: the base grade can also be one of asm_jump, fast and jump.
> +# However, we do not publicly document those grades or encourage their
> +# use by non-developers.
>
> AC_ARG_WITH([llds-base-grade],
>    AC_HELP_STRING([--with-llds-base-grade=<base_grade>],
>           [Force the use of <base_grade> as the base LLDS grade.
> -                   This is mainly useful for forcing the source distribution 
> to
> -                   compile in a grade other than the one which is chosen
> -           automatically.
> -                   <base_grade> must be one of asm_fast, asm_jump, fast, 
> jump,
> -                   reg or none]),
> +          <base_grade> must be one of asm_fast, reg or none]),
>    [user_llds_base_grade="$withval";mercury_cv_user_base_grade=yes],
>    [mercury_cv_user_base_grade=no]
> )
> @@ -3323,24 +3323,14 @@ case "$mercury_cv_user_base_grade" in
>             esac
>             ;;
>     no)
> -        if test $mercury_cv_asm_labels = yes; then
> -            if test $mercury_cv_gcc_model_fast = yes; then
> -                BEST_LLDS_BASE_GRADE=asm_fast
> -            else
> -                BEST_LLDS_BASE_GRADE=asm_jump
> -            fi
> -        elif test $mercury_cv_gcc_labels = yes; then
> -            if test $mercury_cv_gcc_model_fast = yes; then
> -                BEST_LLDS_BASE_GRADE=fast
> -            else
> -                BEST_LLDS_BASE_GRADE=jump
> -            fi
> +        if test $mercury_cv_asm_labels = yes -a \
> +                $mercury_cv_gcc_model_fast = yes
> +        then
> +            BEST_LLDS_BASE_GRADE=asm_fast
> +        elif test $mercury_cv_gcc_model_reg = yes; then
> +            BEST_LLDS_BASE_GRADE=reg
>         else
> -            if test $mercury_cv_gcc_model_reg = yes; then
> -                BEST_LLDS_BASE_GRADE=reg
> -            else
> -                BEST_LLDS_BASE_GRADE=none
> -            fi
> +            BEST_LLDS_BASE_GRADE=none
>         fi
>
>         # We used to force the use of the none base grade if the C compiler
> @@ -3512,9 +3502,10 @@ AC_ARG_ENABLE(nogc-grades,
>                    [install no-gc versions of the library]),
>     enable_nogc_grades="$enableval",enable_nogc_grades=no)
>
> -AC_ARG_ENABLE(agc-grades,
> -    AC_HELP_STRING([--enable-agc-grades],
> -                   [install accurate GC versions of the library]),
> +# Not publicly documented since the agc grades are currently broken.
> +#
> +#  --enable-agc-grades     install accurate GC versions of the library
> +AC_ARG_ENABLE(agc-grades, [],
>     enable_agc_grades="$enableval",enable_agc_grades=no)
>
> AC_ARG_ENABLE(debug-grades,
> diff --git a/doc/user_guide.texi b/doc/user_guide.texi
> index 034eae4..dbb88a7 100644
> --- a/doc/user_guide.texi
> +++ b/doc/user_guide.texi
> @@ -7645,13 +7645,13 @@ The set of aspects and their alternatives are:
>
> @cindex none (compilation grade)
> @cindex reg (compilation grade)
> - at cindex jump (compilation grade)
> - at cindex asm_jump (compilation grade)
> - at cindex fast (compilation grade)
> - at cindex asm_fast (compilation grade)
> - at cindex hl (compilation grade)
> + at c @cindex jump (compilation grade)
> + at c @cindex asm_jump (compilation grade)
> + at c @cindex fast (compilation grade)
> + at c @cindex asm_fast (compilation grade)
> + at c @cindex hl (compilation grade)
> @cindex hlc (compilation grade)
> - at cindex il (compilation grade)
> + at c @cindex il (compilation grade)
> @cindex csharp (compilation grade)
> @cindex java (compilation grade)
> @cindex erlang (compilation grade)
> @@ -7675,7 +7675,7 @@ The set of aspects and their alternatives are:
> @cindex .tr (grade modifier)
> @cindex .trseg (grade modifier)
> @cindex .gc (grade modifier)
> - at cindex .agc (grade modifier)
> + at c @cindex .agc (grade modifier)
> @cindex .spf (grade modifier)
> @cindex .stseg (grade modifier)
> @cindex .debug (grade modifier)
> @@ -7693,7 +7693,8 @@ The set of aspects and their alternatives are:
> (the default is system dependent).
>
> @item What garbage collection strategy to use:
> - at samp{gc}, and @samp{agc} (the default is no garbage collection).
> + at c @samp{agc}
> + at samp{gc} (the default is no garbage collection).
>
> @item What kind of profiling to use:
> @samp{prof},
> @@ -7774,14 +7775,14 @@ and grade modifier; they are followed by descriptions 
> of those options.
> @item @samp{reg}
> @code{--target c --gcc-global-registers --no-gcc-nonlocal-gotos 
> --no-asm-labels}.
>
> - at item @samp{jump}
> - at code{--target c --no-gcc-global-registers --gcc-nonlocal-gotos 
> --no-asm-labels}.
> + at c @item @samp{jump}
> + at c @code{--target c --no-gcc-global-registers --gcc-nonlocal-gotos 
> --no-asm-labels}.
>
> - at item @samp{fast}
> - at code{--target c --gcc-global-registers --gcc-nonlocal-gotos 
> --no-asm-labels}.
> + at c @item @samp{fast}
> + at c @code{--target c --gcc-global-registers --gcc-nonlocal-gotos 
> --no-asm-labels}.
>
> - at item @samp{asm_jump}
> - at code{--target c --no-gcc-global-registers --gcc-nonlocal-gotos 
> --asm-labels}.
> + at c @item @samp{asm_jump}
> + at c @code{--target c --no-gcc-global-registers --gcc-nonlocal-gotos 
> --asm-labels}.
>
> @item @samp{asm_fast}
> @code{--target c --gcc-global-registers --gcc-nonlocal-gotos --asm-labels}.
> @@ -7789,11 +7790,11 @@ and grade modifier; they are followed by descriptions 
> of those options.
> @item @samp{hlc}
> @code{--target c --high-level-code}.
>
> - at item @samp{hl}
> - at code{--target c --high-level-code --high-level-data}.
> + at c @item @samp{hl}
> + at c @code{--target c --high-level-code --high-level-data}.
>
> - at item @samp{il}
> - at code{--target il --high-level-code --high-level-data}.
> + at c @item @samp{il}
> + at c @code{--target il --high-level-code --high-level-data}.
>
> @item @samp{csharp}
> @code{--target csharp --high-level-code --high-level-data}.
> @@ -7807,8 +7808,8 @@ and grade modifier; they are followed by descriptions 
> of those options.
> @item @samp{.gc}
> @code{--gc boehm}.
>
> - at item @samp{.agc}
> - at code{--gc accurate}.
> + at c @item @samp{.agc}
> + at c @code{--gc accurate}.
>
> @item @samp{.prof}
> @code{--profiling}.
> @@ -7876,16 +7877,15 @@ and grade modifier; they are followed by descriptions 
> of those options.
> @cindex Target options
>
> @table @asis
> - at item @code{--target c} (grades: none, reg, jump, fast, asm_jump, asm_fast, 
> hl, hlc)
> - at itemx @code{--il}, @code{--target il} (grades: il)
> + at c @item @code{--target c} (grades: none, reg, jump, fast, asm_jump, 
> asm_fast, hl, hlc)
> + at item @code{--target c} (grades: none, reg, asm_fast, hlc)
> + at c @itemx @code{--il}, @code{--target il} (grades: il)
> @itemx @code{--csharp}, @code{--target csharp} (grades: csharp)
> @itemx @code{--java}, @code{--target java} (grades: java)
> @itemx @code{--erlang}, @code{--target erlang} (grades: erlang)
> -Specify the target language used for compilation: C, IL, C#, Java
> +Specify the target language used for compilation: C, C#, Java
> or Erlang.
> C means ANSI/ISO C, optionally with GNU C extensions (see below).
> -IL means the Intermediate Language of the .NET Common Language Runtime.
> -(IL is sometimes also known as "CIL" or "MSIL".)
> Targets other than C and Erlang imply @samp{--high-level-code}.
>
> @c @sp 1
> @@ -7949,15 +7949,19 @@ the Erlang compiler to produce Erlang bytecode.
> @table @asis
>
> @sp 1
> - at item @code{--gcc-global-registers} (grades: reg, fast, asm_fast)
> - at itemx @code{--no-gcc-global-registers} (grades: none, jump, asm_jump)
> + at c @item @code{--gcc-global-registers} (grades: reg, fast, asm_fast)
> + at c @itemx @code{--no-gcc-global-registers} (grades: none, jump, asm_jump)
> + at item @code{--gcc-global-registers} (grades: reg, asm_fast)
> + at itemx @code{--no-gcc-global-registers} (grades: none)
> @findex --gcc-global-registers
> @findex --no-gcc-global-registers
> Specify whether or not to use GNU C's global register variables extension.
> This option is ignored if the @samp{--high-level-code} option is enabled.
>
> @sp 1
> - at item @code{--gcc-non-local-gotos} (grades: jump, fast, asm_jump, asm_fast)
> + at c @item @code{--gcc-non-local-gotos} (grades: jump, fast, asm_jump, 
> asm_fast)
> + at c @itemx @code{--no-gcc-non-local-gotos} (grades: none, reg)
> + at item @code{--gcc-non-local-gotos} (grades: asm_fast)
> @itemx @code{--no-gcc-non-local-gotos} (grades: none, reg)
> @findex --gcc-non-local-gotos
> @findex --no-gcc-non-local-gotos
> @@ -7965,14 +7969,20 @@ Specify whether or not to use GNU C's ``labels as 
> values'' extension.
> This option is ignored if the @samp{--high-level-code} option is enabled.
>
> @sp 1
> - at item @code{--asm-labels} (grades: asm_jump, asm_fast)
> - at itemx @code{--no-asm-labels} (grades: none, reg, jump, fast)
> + at c @item @code{--asm-labels} (grades: asm_jump, asm_fast)
> + at c @itemx @code{--no-asm-labels} (grades: none, reg, jump, fast)
> + at item @code{--asm-labels} (grades: asm_fast)
> + at itemx @code{--no-asm-labels} (grades: none, reg)
> @findex --asm-labels
> @findex --no-asm-labels
> Specify whether or not to use GNU C's asm extensions
> for inline assembler labels.
> This option is ignored if the @samp{--high-level-code} option is enabled.
>
> + at ignore
> + +   This option is not useful for non-developers.
> +
> @sp 1
> @item @code{--pic-reg} (grades: any grade containing `.pic_reg')
> @findex --pic-reg
> @@ -7986,6 +7996,7 @@ with position-independent code (gcc's `-fpic' option).
> This is necessary when using shared libraries on Intel x86 systems
> running Unix.  On other systems it has no effect.
> This option is also ignored if the @samp{--high-level-code} option is 
> enabled.
> + at end ignore
>
> @sp 1
> @item @code{--stack-segments} (grades: any grade containing `.stseg')
> @@ -8003,14 +8014,16 @@ This option is ignored if the 
> @samp{--high-level-code} option is enabled.
> @cindex MLDS back-end compilation model options
>
> @table @asis
> - at item @code{-H}, @code{--high-level-code} (grades: hl, hlc, il, csharp, 
> java)
> + at c @item @code{-H}, @code{--high-level-code} (grades: hl, hlc, il, csharp, 
> java)
> + at item @code{-H}, @code{--high-level-code} (grades: hlc, csharp, java)
> @findex -H
> @findex --high-level-code
> Use an alternative back-end that generates high-level code
> rather than the very low-level code that is generated by our
> original back-end.
>
> - at item @code{--high-level-data} (grades: hl, il, csharp, java)
> + at c @item @code{--high-level-data} (grades: hl, il, csharp, java)
> + at item @code{--high-level-data} (grades: csharp, java)
> @findex --high-level-data
> Use an alternative, higher-level data representation that uses structs
> or classes, rather than treating all objects as arrays.
> @@ -8192,27 +8205,29 @@ This option is supported for the C back-end, with 
> @samp{--no-high-level-code}.
> For now, this option itself is for developers only.
>
> @sp 1
> - at item @code{--gc @{none, boehm, accurate, automatic@}}
> - at itemx @code{--garbage-collection @{none, boehm, accurate, automatic@}}
> + at c @item @code{--gc @{none, boehm, accurate, automatic@}}
> + at c @itemx @code{--garbage-collection @{none, boehm, accurate, automatic@}}
> + at item @code{--gc @{none, boehm, automatic@}}
> + at itemx @code{--garbage-collection @{none, boehm, automatic@}}
> @cindex Garbage collection
> @cindex Conservative garbage collection
> @cindex Boehm (et al) conservative garbage collector
> - at cindex Memory Pool System conservative garbage collector
> - at cindex Accurate garbage collection
> + at c @cindex Accurate garbage collection
> @cindex Automatic garbage collection
> @findex --gc
> @findex --garbage-collection
> Specify which method of garbage collection to use.
> -Grades containing @samp{csharp}, @samp{java}, @samp{il} or @samp{erlang} use
> + at c and @samp{il}.
> +Grades containing @samp{csharp}, @samp{java}, or @samp{erlang} use
> @samp{--gc automatic},
> grades containing @samp{.gc} use @samp{--gc boehm},
> other grades use @samp{--gc none}.
> @samp{conservative} or @samp{boehm} is Hans Boehm et al's conservative
> garbage collector.
> - at samp{accurate} is our own type-accurate copying collector.
> -It requires @samp{--high-level-code}.
> + at c @samp{accurate} is our own type-accurate copying collector.
> + at c It requires @samp{--high-level-code}.
> @samp{automatic} means the target language provides it.
> -This is the case for the IL, C#, Java and Erlang back-ends, which always use
> +This is the case for the C#, Java and Erlang back-ends, which always use
> the underlying implementation's garbage collector.
>
> @sp 1
> @@ -8256,7 +8271,7 @@ accessible via the @samp{thread} module in the standard 
> library.
> The runtime uses POSIX threads to achieve this, therefore it may also 
> support
> parallel execution of threads.
>
> -The Java, C#, IL and Erlang grades support concurrency without this option.
> +The Java, C# and Erlang grades support concurrency without this option.
> Parallel execution may also be available depending on the target's runtime.
>
> @sp 1
> @@ -9329,8 +9344,8 @@ than to @samp{mmc}.
> Enable debugging of the generated target code.
> If the target language is C, this has the same effect as
> @samp{--c-debug} (see below).
> -If the target language is IL or C#, this causes the compiler to
> -pass @samp{/debug} to the IL assembler or C# compiler.
> +If the target language is C#, this causes the compiler to pass @samp{/debug} 
> to
> +the C# compiler.
>
> @sp 1
> @item --cc @var{compiler-name}
>



More information about the reviews mailing list