[m-dev.] for review: LIBGRADES

Fergus Henderson fjh at cs.mu.OZ.AU
Tue Nov 28 19:09:35 AEDT 2000


On 28-Nov-2000, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> configure.in:
> 	Add options that allow the user to specify the set of library grades
> 	more precisely. Also add an option, --enable-minimum-grades,
> 	that reduces the installed grades to the minimum (asm_fast.gc,
> 	asm_fast.gc.debug.tr and hlc.gc), since this is useful to minimize
> 	installation time e.g. when installing a release of the day on a
> 	laptop.

These options should be documented in the INSTALL file.

If you want to make it more configurable, one possibility that
you might want to consider is adding a `--enable-libgrades=<list>'
option, e.g.  `--enable-libgrades="hlc.gc asm_fast.gc.debug.tr"'.

> Index: configure.in
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/configure.in,v
> retrieving revision 1.235
> diff -u -b -r1.235 configure.in
> --- configure.in	2000/11/23 06:46:25	1.235
> +++ configure.in	2000/11/28 02:39:30
> @@ -1784,37 +1784,93 @@
>  [  --enable-all-grades     install all the different versions of the library],
>  enable_all_grades="$enableval",enable_all_grades=no)
>  
> +
> +AC_ARG_ENABLE(all-hlc-grades,
> +[  --enable-all-hlc-grades install all the hlc grades],
> +enable_all_hlc_grades=yes,enable_all_hlc_grades=no)
> +
> 
> +AC_ARG_ENABLE(nogc-grades,
> +[  --enable-nogc-grades    install no-gc versions of the library],
> +enable_nogc_grades="$enableval",enable_nogc_grades=yes)

For options which are enabled by default, the documentation
should say how to disable them, not how to enable them.
So that should be

[  --disable-nogc-grades    don't install no-gc versions of the library],
enable_nogc_grades="$enableval",enable_nogc_grades=yes)

> +AC_ARG_ENABLE(profiling-grades,
> +[  --enable-profiling-grades install profiling versions of the library],
> +enable_profiling_grades="$enableval",enable_profiling_grades=yes)
> +
> +AC_ARG_ENABLE(trailing-grades,
> +[  --enable-trailing-grades  install trailing versions of the library],
> +enable_trailing_grades="$enableval",enable_trailing_grades=yes)
...
> +AC_ARG_ENABLE(par-grades,
> +[  --enable-par-grades     install thread-safe versions of the library],
> +enable_par_grades="$enableval",enable_par_grades=yes)

Likewise for all of these.

> +AC_ARG_ENABLE(minimum-grades,
> +[  --enable-minimum-grades install only the essential versions of the library],

>From the autoconf documentation for the `--enable-FEATURE' feature:
"`--enable-FEATURE' options ...  should only cause parts of the program
to be built rather than left out."  I agree with this; it is not a
good idea for `--enable' options to cause something to be disabled.

I suggest you invert the sense of the option, naming it
`enable_most_grades', and have it on by default, thus documenting
its inverse, i.e. `--disable-most-grades'.

> +if test "$enable_nogc_grades" = yes; then
> +	# add `.prof' (--profiling) grades, if time profiling is supported,
> +	# and a `.memprof' (--memory-profiling) grade.

Shouldn't that test "enable_profiling_grades" rather than
"enable_nogc_grades"?

-- 
Fergus Henderson <fjh at cs.mu.oz.au>  |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh>  |     -- the last words of T. S. Garp.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list