[m-rev.] for review: improve some faq entries

Julien Fischer juliensf at csse.unimelb.edu.au
Sun Aug 23 01:54:16 AEST 2009

Improve some FAQ entries.

 	Describe how to configure Mercury so that it does not require
 	any GCC extensions.

 	Mention a perforamance problem with ``make install'' on
 	Mac OS X.


Index: faq.texi
RCS file: /home/mercury/mercury1/repository/mercury/doc/faq.texi,v
retrieving revision 1.36
diff -u -r1.36 faq.texi
--- faq.texi	20 Jan 2009 06:35:13 -0000	1.36
+++ faq.texi	22 Aug 2009 15:36:02 -0000
@@ -91,23 +91,24 @@
  @emph{The compiler crashes during the ``make install'' phase}
  @sp 1

-An incompatibility between Mercury's low-level C backend and some GCC
-optimizations in GCC 4.2 seems to be causing problems.  Try using a different
-version of GCC, otherwise the following instructions may help.
-After unpacking the tarball but before running @samp{configure}, create a file in
-the root directory of the unpacked source named @samp{Mmake.params} containing
-the line @samp{-EXTRA_CFLAGS=-O0}, and run @samp{configure} as
- at samp{./configure --with-llds-base-grade=none --with-default-grade=hlc.gc}.
-This disables GCC's optimizations and nearly all of Mercury's optimizations for
-the low-level C backend.
-Programs built using this Mercury installation will use the high-level C
-backend by default.  To build a program in the low-level C grade the GCC
-optimizations should be disabled by creating a @samp{Mmake.params} file in the
-root directory of the program, as described above for the compiler.
+Mercury's use of GNU C extensions can cause problems with
+some versions of GCC, notably versions 4.2 and 4.3.
+Either use a different version of GCC, or configure Mercury
+so that it does require any GNU C extensions.
+The following describes how to do the latter.
+For versions of Mercury after 0.13.1, invoke the configure script with the
+option @samp{--with-llds-base-grade=none}.
+This will cause the compiler to be built in the @samp{none.gc} grade,
+which does not use any GNU C extensions.
+The configure script for Mercury version 0.13.1 (and before) does not support
+the above option.
+Instead create a file in the top-level directory of the unpacked source tree
+named @samp{Mmake.params} containing the line @samp{GRADE=none}.

-See bugs 66 and 77 in the bug database.
+After running the configure script, do ``make'' and ``make install''
+as normal.

  @sp 1
@@ -127,6 +128,9 @@
  Alternatively, run @samp{make install LIBGRADES=<grades>} instead, where
  ``<grades>'' is a space-separated list of grades.

+Users of Mac OS X should note that there appear to be performance problems
+with the linker on some versions that operating system that can lead to
+excessive linking times with code generated by the Mercury compiler.

  @end enumerate

mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au

More information about the reviews mailing list