[mercury-users] the "extras" package

Richard A. O'Keefe ok at atlas.otago.ac.nz
Mon May 31 11:37:20 AEST 1999


	With other languages, one normally doesn't have to worry about wanting to 
	use multiple different versions of the same library (i.e. "grades").

Not so.  In UNIX (C, Fortran, Pascal) systems, there is as an absolute
minimum the choice between "profiled" libraries and non-profiled ones.
On a Solaris system at least, there is a choice between "re-entrant/
multi-thread-aware" libraries and single-thread libraries.  I've been
using Eiffel recently, and with Eiffel there are several different
levels of assertion enforcement.  (Ok, so the "SmallEiffel" compiler
finesses that issue by recompiling the entire program, library included.)

It seems to me that the best way to support libraries in Mercury
would be *lazily*, if possible.  If a single user installs Mercury
for private use, no problem.  If Mercury is installed for many
people to use, create a new 'mercury' account, and have a setuid
`make-mercury-library-component' program.  When Mercury detects
that a library component is missing in some grade, have it fire off
make-mercury-library-component.

This is rather like the way that TeX handles font creation.  You
*could* create a **huge** number of different fonts, but it waits
until someone actually uses a font and *then* runs MetaFont to
create it.

--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list