The Mercury Project
Contributing to Mercury

[Mercury Logo]
Home

News

Information

Documentation

Mailing Lists

Back-ends

Download

Related
  Applications
  MCORBA
  Contributing Code

Contact

Search

Bug Database

Contributed Programs and Libraries

Developer Documentation

There is some developer documentation at the Mercury developer information page.

Mercury Libraries and Programs

If you've written some code using Mercury we'd love to find out about it. If you think it might be in any way useful to other people, you might be interested in making your code available for download. That way others can learn from it, use it and improve on it.

We are happy to place it on the Mercury web and ftp sites for you. Fame and fortune will surely follow.

If you would like to contribute a library or program written using Mercury for others to download and use, here's how you can do it.

  • Choose a license for your code that allows other people to download and use it (by default, copyright law says that nobody but the author can copy or distribute modified copies). Something that meets the open source definition would be good (see www.opensource.org). A pre-written license is always much easier to get right than rolling your own. The LGPL and GPL licenses are pretty compatible with the rest of the Mercury distribution. The Artistic, BSD-like (without advertising clause) and plain old public domain (e.g. no copyright at all) are also pretty popular.
  • Apply this license to your code (e.g. make sure your source files and README file clearly state your name/employer and where to find the licensing conditions and include a file with the conditions). A contact email address is also a good thing to include here.
  • Make your software available on an ftp or http site somewhere. If possible try to include a version number in your tar or zip file (e.g. mylibrary-0.4.zip or myprogram-1.2.1.tar.gz). If you can't do this, attach it in email in the next step.
  • Email mercury@cs.mu.oz.au. and let us know that it's available (or it is attached), what it is, and give us the URL. We'll check it out and if all is well will add it to the archive.

Modifications to the Mercury System

If you've modified something in the Mercury system and would like it to become part of the main distribution, we'd be very interested in your work.

The mercury-developers mailing list is intended for discussing proposed changes to the Mercury system. If you would like to contribute reasonably frequently it might be a good idea to subscribe, or at least browse the archives of this list, simply to get an idea of the kinds of standards required for integrating code into the main distribution. You can also email mercury@cs.mu.oz.au and discuss it with the Mercury team.

There is an issue with copyright ownership in the Mercury system. We'd like to retain the freedom to modify the license of the Mercury system in future releases (in particular, we may decide to dual-license the Mercury system so as to make it compatible with other open source licenses out there). Doing this with hundreds of copyright holders is practically impossible, since you need the agreement of every single one of them to make changes.

Under the current license you are free to make any modifications you like and distribute them. However we ask that if you want your modifications to be merged back into the main line of development, you talk to us about this issue. The easiest solution is to place your changes into the public domain (e.g. give up copyright ownership on them) and then we can merge them into the main compiler. This is a nice simple mechanism for getting around the hundreds of authors problem. If you have an employer who has some control over your copyright, we have some standard documents for doing this kind of thing. It is almost always preferable to ask an employer to sign a form than to try to explain the concept (possibly confusing or scaring them in the process). Please email mercury@cs.mu.oz.au if you want to discuss contributing changes to the Mercury system.