[m-dev.] Libraries Idea

Ralph Becket rbeck at microsoft.com
Wed Sep 22 21:04:21 AEST 1999


The discussion so far has focussed on far more general solutions than
I had in mind.  It seems to me there are two or three classes of
Mercury user.

[In the following, `version' means compiler'n'stuff, and `library'
means body of code intended for reuse.]

1. Users of sys-admin installed versions, not interested in installing
new libraries (e.g. undergraduates taking Logic Programming 101).

  In this situation it is almost certainly the case that getting the
  sys-admin to install all the libraries at install-time is the
  right thing to do.

2. Users of sys-admin installed versions that also want to employ
private (versions of) libraries.

3. Users who install and administer their own versions (e.g. on home
machines).

I think that libraries that are to be shared should be installed by
the sys-admin or someone with the appropriate authority.

However, in cases 2 and 3 you want to make it as easy as possible for
users to develop private library suites, and this is what I was trying
to get at in the first place.

What I would like to do is to say something like the following to
mmake:

- here is a list of places where you can look for compiled libraries
in various grades (e.g. installed, private, friends', ...);

- here is a list of places where you can find source code;

- this is the place where I keep my own compiled libraries;

- if you can't find a compiled version of a library, but can find the
source code for it, then compile the source code in the appropriate
grade and install it in my library tree.

So, the places where compiled libraries are put all have a common
structure (a la /usr/local/mercury/lib) which would be constructed
and updated as necessary when mmake compiles a new library.

This seems very straightforward to me.  If I'm installing a system
for shared use, then I'll compile all the standard libraries in all
the grades, because the users typically won't have the permissions
to do so themselves in the shared library tree.

If I'm a user of a shared system, I can construct and download library
code for personal use and have it compiled in my library tree.

If I'm using a personal system (e.g. at home) I can use this method
to get on-demand compilation of library modules, rather than having
to wait a few hours for the build to finish.

I'd offer to have a go at this, but I don't want to tread on anybody's
toes!

Cheers,

Ralph
--------------------------------------------------------------------------
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