Guide to contributing code to ACL2.
The main way to contribute code to ACL2 is to open a pull request (PR) to the ACL2 GitHub repository. First create a personal fork of the repository and commit your changes/additions there. Then open a PR to merge your changes into the main ACL2 repository. Please ensure your PR follows these guidelines:
While the community is invited to submit contributions to the
Suggestions for system changes can be emailed to Matt Kaufmann. (Prospective system developers should see the developers-guide.)
New developments that do not clearly belong in an existing directory
are often put into the projects subdirectory of
Avoid introducing code that may fail on machines/environments other than your own. In particular, avoid the following:
Before making your PR, you should run a regression to ensure that
your changes/additions do not break the build. To do so, run the following
make -j 8 regression
(Note: the
When opening your PR to merge changes into the main ACL2 repository, set
the base branch to the
See best-practices for recommended code practices.
Consider creating documentation using the xdoc system. Then, to
ensure your new topics appear in the manual, ensure they are included by
Consider adding some high-level information about your changes to the
Community Books' release notes — i.e., the appropriate release-notes-books XDOC topic in
For those new to Git (the version control system) or GitHub (the platform on which the ACL2 Git repository is hosted), see git-quick-start.
Frequent contributors may request to join the ACL2 GitHub project. Such contributors may push directly to various testing branches without opening a PR (although it is still good practice to open a PR when modifying a widely used book or one primarily authored by someone else).
To request to join the project, email one of the following individuals:
See also the community topic for other ways to connect with the ACL2 community, and ways to get help.