Contributing to the MPS
=======================
:author: Richard Brooksby
:organization: Ravenbrook Limited
:date: 2013-07-05
:revision: $Id: //info.ravenbrook.com/project/mps/version/1.113/contributing.rst#1 $
:confidentiality: public

We are very happy to receive contributions to the Memory Pool System so
that we can improve it for everyone.


Review
------
The MPS is highly engineered and rigorously controlled in order to
prevent defects.  This approach has lead to an extremely small number of
bugs in production since its first commercial use in 1997.  There are a
fairly large number of rules, both low- and high-level that your code
must follow in order to be accepted.  These rules are the result of
continuous process improvement to prevent defects.  Unfortunately, we do
not have many of them published at present.  We apologise if you find it
frustrating that we do not accept your changes as they are.

The style guide in guide.impl.c.format_ contains basic rules for style.

.. _guide.impl.c.format: design/guide.impl.c.format.txt


Licensing
---------
In order for us to accept your contribution, you must agree to the MPS
contribution agreement, so that we can continue to commercially license the
MPS and thereby fund future development.

    I grant Ravenbrook Ltd an irrevocable, perpetual, worldwide,
    non-exclusive licence to do anything with [your contribution] that I
    would have the right to do. This includes (but is not limited to):

    1. reproducing it and doing any other act that is restricted by
       copyright;

    2. the right to sublicence to others the code and any derivative
       work.

A member of Ravenbrook staff may ask you to expressly (in writing) agree.
You just need to reply with “I agree.”  We apologise for the inconvenience.


Thank you
---------
Finally, thank you for making the MPS more useful to everyone.
