[m-rev.] for review: document `il' and `hl' grades, etc.

Fergus Henderson fjh at cs.mu.OZ.AU
Mon Nov 4 14:41:53 AEDT 2002


Estimated hours taken: 1.5
Branches: main

Update the documentation to reflect recent changes in what is/is not
supported.

compiler/options.m:
doc/user_guide.texi:
	Document the `--high-level-data' option.
	Document the `il' and `hl' grades.
	Delete documentation of the `ilc' grade.
	Avoid using "Microsoft" for things which are no longer
	Microsoft-specific.
	Various other minor wording changes.

Workspace: /home/ceres/fjh/mercury
Index: compiler/options.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/options.m,v
retrieving revision 1.390
diff -u -d -r1.390 options.m
--- compiler/options.m	22 Oct 2002 04:35:54 -0000	1.390
+++ compiler/options.m	26 Oct 2002 15:02:37 -0000
@@ -2626,14 +2626,15 @@
 		"-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', `hlc', `ilc', or `java',",
-% These grades (hl, hl_nest, and hlc_nest) are not yet documented, because
+		"\t`asm_fast', `hl', `hlc', `il', or `java',",
+% 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.
-%		"\t`hl', `hl_nest', `hlc_nest'",
+% The ilc grade is not documented because it is not useful;
+% it has been superceded by the il grade.
 		"\tor one of those with one or more of the grade modifiers",
-		"\t`.gc', `.mps', `.prof', `.memprof', `.tr', `.rt', `.debug', `.par'",
-		"\tand/or `.pic_reg' appended.",
+		"\t`.gc', `.mps', `.prof', `.memprof', `.tr', `.rt', `.debug',",
+		"\t`.par' and/or `.pic_reg' 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",
@@ -2643,13 +2644,14 @@
 	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, hlc)",
+		"\t\t\t\t\tasm_jump, asm_fast, hl, hlc)",
 		"--target asm\t\t\t(grades: hlc)",
-		"--target il\t\t\t(grades: ilc)",
+		"--target il\t\t\t(grades: il)",
 		"--target java\t\t\t(grades: java)",
 		"\tSpecify the target language: C, assembler, IL or Java.",
-		"\tThe default is C.",
-		"\t""IL"" is the Microsoft.NET Intermediate Language.",
+		"\tThe default is C.  ""IL"" (also known as ""CIL"" or ""MSIL"")",
+		"\tis the Intermediate Language for the .NET Common Language",
+		"\tRuntime.",
 		"\tTargets other than C imply `--high-level-code' (see below).",
 		"\tAs an exception to the usual rule for options in this section,",
 		"\twhere different option settings normally correspond to different",
@@ -2750,8 +2752,9 @@
 		"\t\t\t\t`.mps' grades use `--gc mps',",
 		"\t\t\t\tother grades use `--gc none'.)",
 		"\tSpecify which method of garbage collection to use",
-		"\t(default: boehm).  `accurate' GC is not yet implemented.",
-		"\t`conservative' or `boehm' is Hans Boehm et al's conservative collector.",
+		"\t(default: boehm).  `accurate' GC is not yet supported.",
+		"\t`conservative' or `boehm' is Hans Boehm et al's conservative",
+		"\tcollector.",
 		"\t`mps' is a different conservative collector, based on",
 		"\tRavenbrook Limited's MPS (Memory Pool System) kit.",
 		"\tThis option is ignored for the IL and Java back-ends,",
@@ -2795,24 +2798,26 @@
 
 	io__write_string("\n    MLDS back-end compilation model options:\n"),
 	write_tabbed_lines([
-% These grades (hl, hl_nest, and hlc_nest) are not yet documented, because
-% the --high-level-data option is not yet implemented,
-% and the --gcc-nested-functions option is not yet documented.
-%		"-H, --high-level-code\t\t\t(grades: hl, hlc, hl_nest, hlc_nest)",
-		"-H, --high-level-code\t\t\t(grades: hlc, ilc, java)",
+% These grades (hl_nest, and hlc_nest) are not yet documented,
+% because the --gcc-nested-functions option is not yet documented.
+%		"-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, 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."
-% The --high-level-data option is not yet documented,
+		"\toriginal back-end.",
+% The hl_nest grade is not yet documented,
+% 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)",
-%		"\tUse an alternative higher-level data representation.",
-% The --high-level option is not yet documented,
-% because --high-level-data is not yet supported
-%		"--high-level\t\t\t(grades: hl, hl_nest)",
-%		"\tAn abbreviation for `--high-level-code --high-level-data'.",
+%		"--high-level-data\t\t\t(grades: hl, hl_nest, il, java)",
+		"--high-level-data\t\t\t(grades: hl, il, java)",
+		"\tUse an alternative higher-level data representation.",
+%		"--high-level\t\t\t(grades: hl, hl_nest, il, java)",
+		"--high-level\t\t\t(grades: hl, il, java)",
+		"\tAn abbreviation for `--high-level-code --high-level-data'."
 % The --gcc-nested-functions option is not yet documented,
-% because it has not been thoroughly tested, and it is
+% because it doesn't pass our test suite, and it is
 % probably not very useful.
 %		"--gcc-nested-functions\t\t(grades: hl_nest, hlc_nest)",
 %		"\tSpecify whether or not to use GNU C's nested functions extension.",
@@ -2874,30 +2879,30 @@
 %		"\tGenerate IL code that assumes that the CLI verifier",
 %		"\tsupports tail calls with byref arguments."
 %
-% The --il-funcptr-types option is not documented because currently there
-% are no IL implementations for which it is useful.
+% The --il-funcptr-types option is not documented because it is not yet
+% implemented.
 %		"--il-funcptr-types",
 %		"\tGenerate IL code that assumes that the IL assembler",
 %		"\tsupports function pointer types."
 %		"\tThe ECMA CLI specification allows function pointer types,"
-%		"\tbut the current (Beta 2) Microsoft CLR implementation"
-%		"\tdoes not support them."
+%		"\tbut some CLR implementations, e.g. the old Beta 2 version of"
+%		"\tthe Microsoft CLR implementation, do not support them."
 	]),
 
 	io__write_string("\n    Developer compilation model options:\n"),
 	io__write_string("\n      Data representation\n"),
 	write_tabbed_lines([
-		"--tags {none, low, high}\t(This option is not for general use.)",
+		"--tags {none, low, high}      (This option is not for general use.)",
 		"\tSpecify whether to use the low bits or the high bits of ",
 		"\teach word as tag bits (default: low).",
 	% 	"\t\t`--tags none' implies `--num-tag-bits 0'.",
-		"--num-tag-bits <n>\t\t(This option is not for general use.)",
+		"--num-tag-bits <n>            (This option is not for general use.)",
 		"\tUse <n> tag bits.",
-		"--num-reserved-addresses <n>\t(This option is not for general use.)",
+		"--num-reserved-addresses <n>  (This option is not for general use.)",
 		"\tTreat the integer values from 0 up to <n> - 1 as reserved",
 		"\taddresses that can be used to represent nullary constructors",
 		"\t(constants) of discriminated union types.",
-		"--num-reserved-objects <n>\t(This option is not for general use.)",
+		"--num-reserved-objects <n>    (This option is not for general use.)",
 		"\tAllocate up to <n> global objects per type,",
 		"\tfor representing nullary constructors",
 		"\t(constants) of discriminated union types.",
@@ -3062,18 +3067,18 @@
 
 	io__write_string("\n    Code generation target options:\n"),
 	write_tabbed_lines([
-		"--branch-delay-slot\t\t(This option is not for general use.)",
+		"--branch-delay-slot    \t(This option is not for general use.)",
 		"\tAssume that branch instructions have a delay slot.",
-		"--num-real-r-regs <n>\t\t(This option is not for general use.)",
+		"--num-real-r-regs <n>  \t(This option is not for general use.)",
 		"\tAssume registers r1 up to r<n> are real general purpose",
 		"\tregisters.",
-		"--num-real-f-regs <n>\t\t(This option is not for general use.)",
+		"--num-real-f-regs <n>  \t(This option is not for general use.)",
 		"\tAssume registers f1 up to f<n> are real floating point",
 		"\tregisters.",
-		"--num-real-r-temps <n>\t\t(This option is not for general use.)",
+		"--num-real-r-temps <n> \t(This option is not for general use.)",
 		"\tAssume that <n> non-float temporaries will fit into",
 		"\treal machine registers.",
-		"--num-real-f-temps <n>\t\t(This option is not for general use.)",
+		"--num-real-f-temps <n> \t(This option is not for general use.)",
 		"\tAssume that <n> float temporaries will fit into",
 		"\treal machine registers."
 	]).
@@ -3473,9 +3478,9 @@
 		% options are are reserved for use by the `mmc' script;
 		% they are deliberately not documented.
 
-		"--javac",
-		"--java-compiler",
-		"\tSpecify which Java compiler to use.  The default is javac.",
+		"--javac <javac>",
+		"--java-compiler <javac>",
+		"\tSpecify which Java compiler to use.  The default is `javac'.",
 		
 		"--java-flags <options>, --java-flag <option>",
 		"\tSpecify options to be passed to the Java compiler.",
@@ -3490,7 +3495,7 @@
 		"\tBy default this is `.class'.",
 
 		"--il-assembler <ilasm>",
-		"\tThe Microsoft IL Assembler.",
+		"\tSpecify the name of the .NET IL Assembler command.",
 		"--ilasm-flags <options>, --ilasm-flag <options>",
 		"\tSpecify options to be passed to the IL assembler.",
 		"\t`--ilasm-flag' should be used for single words which need",
@@ -3503,7 +3508,7 @@
 		"\tto be quoted when passed to the shell.",
 
 		"--csharp-compiler <csc>",
-		"\tSpecify the name of the Microsoft C# Compiler.",
+		"\tSpecify the name of the C# Compiler.  The default is `csc'.",
 		"--csharp-flags <options>, --csharp-flag <option>",
 		"\tSpecify options to be passed to the C# compiler.",
 		"\t`--csharp-flag' should be used for single words which need",
Index: doc/user_guide.texi
===================================================================
RCS file: /home/mercury1/repository/mercury/doc/user_guide.texi,v
retrieving revision 1.333
diff -u -d -r1.333 user_guide.texi
--- doc/user_guide.texi	26 Oct 2002 14:15:33 -0000	1.333
+++ doc/user_guide.texi	26 Oct 2002 14:47:17 -0000
@@ -234,7 +234,7 @@
 @file{.s} files and @file{.pic_s} files are assembly language.
 @file{.java} and @file{.class} files are Java source code
 and Java bytecode respectively.
- at file{.il} files are Microsoft Intermediate Language (MSIL) files
+ at file{.il} files are Intermediate Language (IL) files
 for the .NET Common Language Runtime.
 @c XXX mention .dll and .exe?
 
@@ -543,7 +543,7 @@
 Compiles @var{main-module} to Java bytecode files (@file{*.class}).
 
 @item @var{main-module}.ils
-Compiles @var{main-module} to MSIL files (@file{*.il})
+Compiles @var{main-module} to IL files (@file{*.il})
 for the .NET Common Language Runtime.
 
 @c XXX mention .dlls and .exe targets?
@@ -4803,8 +4803,9 @@
 @cindex asm_jump (compilation grade)
 @cindex fast (compilation grade)
 @cindex asm_fast (compilation grade)
+ at cindex hl (compilation grade)
 @cindex hlc (compilation grade)
- at cindex ilc (compilation grade)
+ at cindex il (compilation grade)
 @cindex java (compilation grade)
 @cindex .prof (grade modifier)
 @cindex .memprof (grade modifier)
@@ -4830,9 +4831,9 @@
 @c @cindex decldebug (grade modifier)
 @cindex par (grade modifier)
 @table @asis
- at item What target language to use, and (for C) what combination of GNU C extensions to use:
+ at item What target language to use, what data representation to use, and (for C) what combination of GNU C extensions to use:
 @samp{none}, @samp{reg}, @samp{jump}, @samp{asm_jump},
- at samp{fast}, @samp{asm_fast}, @samp{hlc}, @samp{ilc} and @samp{java}
+ at samp{fast}, @samp{asm_fast}, @samp{hl}, @samp{hlc}, @samp{il} and @samp{java}
 (the default is system dependent).
 
 @item What garbage collection strategy to use:
@@ -4914,11 +4915,14 @@
 @item @samp{hlc}
 @code{--target c --high-level-code}.
 
- at item @samp{ilc}
- at code{--target il --high-level-code}.
+ at item @samp{hl}
+ at code{--target c --high-level-code --high-level-data}.
+
+ at item @samp{il}
+ at code{--target il --high-level-code --high-level-data}.
 
 @item @samp{java}
- at code{--target java --high-level-code}.
+ at code{--target java --high-level-code --high-level-data}.
 
 @item @samp{.gc}
 @code{--gc boehm}.
@@ -4975,13 +4979,14 @@
 @cindex Target options
 
 @table @asis
- at item @code{--target c} (grades: none, reg, jump, fast, asm_jump, asm_fast, hlc)
+ at item @code{--target c} (grades: none, reg, jump, fast, asm_jump, asm_fast, hl, hlc)
 @item @code{--target asm} (grades: hlc)
- at itemx @code{--il}, @code{--target il} (grades: ilc)
+ at itemx @code{--il}, @code{--target il} (grades: il)
 @itemx @code{--java}, @code{--target java} (grades: java)
 Specify the target language used for compilation: C, assembler, IL or Java.
 C means ANSI/ISO C, optionally with GNU C extensions (see below).
-IL means the Microsoft .NET Intermediate Language.
+IL means the Intermediate Language of the .NET Common Language Runtime.
+(IL is sometimes also known as "CIL" or "MSIL".)
 Targets other than C imply @samp{--high-level-code}.
 
 @sp 1
@@ -5071,13 +5076,18 @@
 @cindex MLDS back-end compilation model options
 
 @table @asis
- at item @code{-H}, @code{--high-level-code} (grades: hlc, ilc, java)
+ at item @code{-H}, @code{--high-level-code} (grades: hl, hlc, il, 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, java)
+ at findex --high-level-data
+Use an alternative, higher-level data representation that uses structs
+or classes, rather than treating all objects as arrays.
+
 @end table
 
 @node Optional features compilation model options
@@ -6815,13 +6825,13 @@
 This is the second preferred foreign language for IL code generation.
 
 @item @samp{IL}
-IL (or CIL) is the intermediate language of the .NET Common Language
-Runtime.
+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.
 This is the preferred foreign language for IL code generation.
 
 @item @samp{Managed C++}
-Managed Extensions for C++ is a language based on C++ that
+Microsoft Managed Extensions for C++ is a language based on C++ that
 provide support for writing .NET components, by adding extra
 keywords and syntax.
 Only available on backends that compile to IL.

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
The University of Melbourne         |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list