<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Clang - Get Involved</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>
<body>

<!--#include virtual="menu.html.incl"-->

<div id="content">

<h1>Getting Involved with the Clang Project</h1>

<p>Once you have <a href="get_started.html">checked out and built</a> clang and
played around with it, you might be wondering what you can do to make it better
and contribute to its development.  Alternatively, maybe you just want to follow
the development of the project to see it progress.
</p>

<h2>Contribute</h2>

See the <a href="hacking.html">hacking</a> document for information on how
to author patches.

<h2>Follow what's going on</h2>

<p>Clang is a subproject of the <a href="https://llvm.org">LLVM Project</a>
and has a Discourse forum and mailing list:</p>

<ul>
<li><a href="https://discourse.llvm.org/c/clang/6">Clang Frontend Discourse forum</a> -
This forum is for discussions related to Clang (questions and answers, design
discussions, RFCs, etc).</li>

<li><a href="https://discord.gg/xS7Z362">Discord chat</a> - Real-time chat for
discussions related to Clang (primarily for questions and answers).</li>

<li>Regular meetings are held on the
<a href="https://drive.google.com/file/d/1S7V0MHP4xMs1yUQ9Gv9LHn5bwDfFVapn/view?usp=sharing">
first and third Wednesday</a> of each month to discuss C and C++
standards-related activities happening within the Clang community. These
meetings are a way to coordinate efforts between implementers and provide
updates on how standards activities are going. Meeting agendas and minutes are
available
<a href="https://docs.google.com/document/d/1x5-RbOC6-jnI_NcJ9Dp4pSmGhhNe7lUevuWUIB46TeM/edit?usp=sharing">
here<a>.
</li>

<li><a href="https://llvm.org/docs/GettingInvolved.html#office-hours">Clang office hours</a> -
People within the community hold dedicated office hours at different points
during the month, which is a great way opportunity for getting questions
answered, having more in-depth design discussions, or learning about what's
going on in the community in general.</li>

<li><a href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits
</a> - Historical record of commits to Clang and contains early community patch
review commentary.</li>

</ul>

<p>The most common way to talk with other developers on the project is through
the <a href="https://discourse.llvm.org/c/clang/6">Clang Frontend Discourse forum
</a>. The clang forum is a very friendly place and we welcome newcomers. The
forum is archived so you can browse through previous discussions or follow
development on the web if you prefer.</p>

<p>If you're looking for something to work on, check out our <a
href="OpenProjects.html">Open Projects</a> page or look through the <a
href="https://github.com/llvm/llvm-project/issues/">LLVM bug tracker</a>.</p>

<h2 id="criteria">Contributing Extensions to Clang</h2>

<p>Clang is designed to support experimentation,
allowing programmers to easily extend the compiler to support great
new language features and tools. At some point, the authors of these
extensions may propose that the extensions become a part of Clang
itself, to benefit the whole Clang community. However, extensions
(particularly language extensions) have long-term maintenance costs
for Clang. The benefits of the extension need to be evaluated against
these costs. The Clang project uses the following criteria for this
evaluation:</p>

<ol>
  <li>Evidence of a significant user community: This is based on a number of
  factors, including an existing user community, the perceived likelihood that
  users would adopt such a feature if it were available, and any secondary
  effects that come from, e.g., a library adopting the feature and providing
  benefits to its users.</li>

  <li>A specific need to reside within the Clang tree: There are some extensions
  that would be better expressed as a separate tool, and should remain as
  separate tools even if they end up being hosted as part of the LLVM umbrella
  project.</li>

  <li>A specification: The specification must be sufficient to understand the
  design of the feature as well as interpret the meaning of specific examples.
  The specification should be detailed enough that another compiler vendor
  could implement the feature.</li>

  <li>Representation within the appropriate governing organization: For
  extensions to a language governed by a standards committee (C, C++, OpenCL),
  the extension itself must have an active proposal and proponent within that
  committee and have a reasonable chance of acceptance. Clang should drive the
  standard, not diverge from it. This criterion does not apply to all
  extensions, since some extensions fall outside of the realm of the standards
  bodies.</li>

  <li>A long-term support plan: increasingly large or complex extensions to
  Clang need matching commitments to supporting them over time, including
  improving their implementation and specification as Clang evolves. The
  capacity of the contributor to make that commitment is as important as the
  commitment itself.</li>

  <li>A high-quality implementation: The implementation must fit well into
  Clang's architecture, follow LLVM's coding conventions, and meet Clang's
  quality standards, including diagnostics and complete AST
  representations. This is particularly important for language extensions,
  because users will learn how those extensions work through the behavior of the
  compiler.</li>

  <li>A test suite: Extensive testing is crucial to ensure that the language
  extension is not broken by ongoing maintenance in Clang. The test suite
  should be complete enough that another compiler vendor could conceivably
  validate their implementation of the feature against it.</li>
</ol>

</div>
</body>
</html>
