Best Practices for Contributors¶
This directory contains rough notes intended to be helpful in pointing out features/quirks of the Chapel development experience for new developers. A possible reading order is roughly as follows:
- Getting Started:
A list of suggested “first steps” for new developers.
- Contributor Info and Getting started with Chapel and the Developer Certificate of Origin (DCO):
Information for contributors about setting up github accounts, the developer workflow, and testing changes.
- Compiler documentation:
- Frontend Library API Docs:
API documentation for the frontend library
The compiler overview document in
$CHPL_HOME/doc/rst/developer/implementation/compilerOverview
- Tips On Debugging The Compiler:
Tips on debugging the compiler.
- Examining/Debugging Compiler IR:
Tips on examining compiler IR during/after compilation.
- How To Generate Warnings And Error Messages:
The standard ways to report errors and warnings in
Chapel/compiler/runtime
.
- The Chapel Runtime Library:
All about the runtime library.
- All About Compiler-Generated Code:
All about compiler-generated code: where it is, timing it, debugging/profiling, etc.
- Running Chapel Programs with GASNet on your Desktop:
Tips on running and debugging Chapel programs with GASNet on your desktop.
- Git tips for Chapel developers:
Tips for using git.
- The CHPL_DEVELOPER environment variable:
The most important environment variable you want to set, and what it does.
- Chapel Testing System:
All about the Chapel testing system.
- chplspell:
How to use chplspell to spellcheck the Chapel project.
- Valgrind:
Building the Chapel compiler so that compiled programs work with valgrind.
- Sanitizers:
Enabling sanitizers for the compiler and/or executable.
- Chapel’s Deprecation Policy:
How to deprecate standard library routines
- Unstable Features:
How to mark features as unstable
- Nightly Testing
How to run nightly testing
- Standard Module Style:
Style guidance when writing standard modules
- How to test ANNOTATIONS.yaml changes locally:
How to test ANNOTATIONS.yaml changes locally
- Building Chapel Documentation:
Information about building and updating the Chapel documentation
- Miscellaneous Notes:
Notes not in any of the above categories.