[mercury-users] Mercury Anarchive proposal

Ondrej Bojar bojar at csse.unimelb.edu.au
Fri Feb 23 15:00:24 AEDT 2007

Peter Schachte wrote:
> A few other points.  Firstly, to be maximally useful as a repository, I think
> it would be best for you to set some policy about documentation.  Even if it's
> just that library modules should be documented the same way Mercury's library
> modules are.

I definitely agree. But I prefer people contributing even a code snippet 
missing documentation, because the snippet can be interesting and because 
someone else might volunteer to raise it to a real package with documentation.

Maybe, the summary of packages available should contain also author's remarks on:

- interface stability (see the modules in Mercury standard library)
- level of code documentation (none, interface, some_code, all_code; where
      all_code could possibly happen only for educatory packages)

> Also, in addition to library modules, it would also be useful to have a
> repository for applications (partially) written in Mercury.  These could range
> from little "Hello World"-scale demos to full-blown applications.

I'll leave this for someone else. I understand the utility of such an archive. 
In simple cases, a manarchive library + a sample code will do the job, the 
full-blown cases I can imagine are way beyond something that fits the 'generic 
library' goal and should be distributed completely independently.

> Finally, your plan for testing the library suite sounds very good, but it's
> also important that users should be able to grab individual libraries from the
> archive and easily install them as part of their Mercury installation.  Note
> that an "individual library" may comprise any number of source files.

A 'check-out manager' could do this:

mkdir mana-lib-source
cd mana-lib-source
svn co https://manarchive/svnroot/trunk manager
cd manager
./manager --get packageone --get packagetwo --install

The manager would issue the following commands:

mkdir packages
cd packages
svn co https://manarchive/svnroot/trunk/packages/packageone
svn co https://manarchive/svnroot/trunk/packages/packagetwo
# and all required packages, once it can handle dependencies

and then it would 'mmc --make libpackageX' and 'mmc --make 
libpackageX.install' all of them in an appropriate order. The mmc knows where 
to put libraries by default, or you can specify it.

The tricky part begins with libraries requiring non-mana or non-mercury 


Ondrej Bojar (mailto:obo at cuni.cz / bojar at ufal.mff.cuni.cz)
mercury-users mailing list
Post messages to:       mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions:          mercury-users-request at csse.unimelb.edu.au

More information about the users mailing list