Contributing to the MPS
=======================
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
---------
Prior to the 2020-05 re-licensing of the MPS under the BSD 2-clause
license, we required contributors to agree to the following
contribution agreement, so that we could continue to commercially
license the MPS and thereby fund future development. We have not yet
decided what may replace this requirement.

    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.
