=================
Clang Maintainers
=================

This file is a list of the
`maintainers <https://llvm.org/docs/DeveloperPolicy.html#maintainers>`_ for
Clang. The list of current Clang Area Team members can be found
`here <https://github.com/llvm/llvm-project/blob/main/clang/AreaTeamMembers.txt>`_.

.. contents::
   :depth: 2
   :local:

Active Maintainers
==================
The following people are the active maintainers for the project. Please reach
out to them for code reviews, questions about their area of expertise, or other
assistance.

Lead Maintainer
---------------
| Aaron Ballman
| aaron\@aaronballman.com (email), aaron.ballman (Phabricator), AaronBallman (GitHub), AaronBallman (Discourse), aaronballman (Discord)


Contained Components
--------------------
These maintainers are responsible for particular high-level components within
Clang that are typically contained to one area of the compiler.

AST matchers
~~~~~~~~~~~~
| Aaron Ballman
| aaron\@aaronballman.com (email), aaron.ballman (Phabricator), AaronBallman (GitHub), AaronBallman (Discourse), aaronballman (Discord)


AST Visitors
~~~~~~~~~~~~
| Sirraide
| aeternalmail\@gmail.com (email), Sirraide (GitHub), Ætérnal (Discord), Sirraide (Discourse)


Clang LLVM IR generation
~~~~~~~~~~~~~~~~~~~~~~~~
| John McCall
| rjmccall\@apple.com (email), rjmccall (Phabricator), rjmccall (GitHub)

| Eli Friedman
| efriedma\@quicinc.com (email), efriedma (Phabricator), efriedma-quic (GitHub)

| Anton Korobeynikov
| anton\@korobeynikov.info (email), asl (Phabricator), asl (GitHub)

Clang MLIR generation
~~~~~~~~~~~~~~~~~~~~~
| Andy Kaylor
| akaylor\@nvidia.com (email), AndyKaylor (Discord), AndyKaylor (GitHub)

| Bruno Cardoso Lopes
| bruno.cardoso\@gmail.com (email), sonicsprawl (Discord), bcardosolopes (GitHub)

| Henrich Lauko
| henrich.lau\@gmail.com  (email), henrich.lauko (Discord), xlauko (GitHub)

Analysis & CFG
~~~~~~~~~~~~~~
| Dmitri Gribenko
| gribozavr\@gmail.com (email), gribozavr (Phabricator), gribozavr (GitHub)

| Yitzhak Mandelbaum
| yitzhakm\@google.com (email), ymandel (Phabricator), ymand (GitHub)

| Stanislav Gatev
| sgatev\@google.com (email), sgatev (Phabricator), sgatev (GitHub)


Sema
~~~~
| Sirraide
| aeternalmail\@gmail.com (email), Sirraide (GitHub), Ætérnal (Discord), Sirraide (Discourse)

| Mariya Podchishchaeva
| mariya.podchishchaeva\@intel.com (email), Fznamznon (GitHub), fznamznon (Discord), Fznamznon (Discourse)


Recovery AST
~~~~~~~~~~~~
| Haojian Wu
| hokein.wu\@gmail.com (email), hokein (Phabricator), hokein (GitHub), hokein (Discourse)


Experimental new constant interpreter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Timm Bäder
| tbaeder\@redhat.com (email), tbaeder (Phabricator), tbaederr (GitHub), tbaeder (Discourse), tbaeder (Discord)


Modules & serialization
~~~~~~~~~~~~~~~~~~~~~~~
| Chuanqi Xu
| yedeng.yd\@linux.alibaba.com (email), ChuanqiXu (Phabricator), ChuanqiXu9 (GitHub)

| Michael Spencer
| bigcheesegs\@gmail.com (email), Bigcheese (Phabricator), Bigcheese (GitHub)

| Vassil Vassilev
| Vassil.Vassilev\@cern.ch (email), v.g.vassilev (Phabricator), vgvassilev (GitHub)


Templates
~~~~~~~~~
| Erich Keane
| ekeane\@nvidia.com (email), ErichKeane (Phabricator), erichkeane (GitHub)


Lambdas
~~~~~~~
| Corentin Jabot
| corentin.jabot\@gmail.com (email), cor3ntin (Phabricator), cor3ntin (GitHub)


Debug information
~~~~~~~~~~~~~~~~~
| Adrian Prantl
| aprantl\@apple.com (email), aprantl (Phabricator), adrian-prantl (GitHub)

| David Blaikie
| dblaikie\@gmail.com (email), dblaikie (Phabricator), dwblaikie (GitHub)

| Eric Christopher
| echristo\@gmail.com (email), echristo (Phabricator), echristo (GitHub)


Exception handling
~~~~~~~~~~~~~~~~~~
| Anton Korobeynikov
| anton\@korobeynikov.info (email), asl (Phabricator), asl (GitHub)


Clang static analyzer
~~~~~~~~~~~~~~~~~~~~~
| Artem Dergachev
| adergachev\@apple.com (email), NoQ (Phabricator), haoNoQ (GitHub)

| Gábor Horváth
| xazax.hun\@gmail.com (email), xazax.hun (Phabricator), Xazax-hun (GitHub)

| Balázs Benics
| benicsbalazs\@gmail.com (email), steakhal (Phabricator), steakhal (GitHub)
| balazs.benics\@sonarsource.com (email), balazs-benics-sonarsource (GitHub)

Compiler options
~~~~~~~~~~~~~~~~
| Jan Svoboda
| jan_svoboda\@apple.com (email), jansvoboda11 (Phabricator), jansvoboda11 (GitHub)


API Notes
~~~~~~~~~~~~~~~~
| Egor Zhdan
| e_zhdan\@apple.com (email), egorzhdan (GitHub), egor.zhdan (Discourse)

| Saleem Abdulrasool
| compnerd\@compnerd.org (email), compnerd (GitHub), compnerd (Discourse)


OpenBSD driver
~~~~~~~~~~~~~~
| Brad Smith
| brad\@comstyle.com (email), brad (Phabricator), brad0 (GitHub)

Offloading driver
~~~~~~~~~~~~~~~~~
| Joseph Huber
| joseph.huber\@amd.com (email), jhuber6 (GitHub)


Driver parts not covered by someone else
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Fangrui Song
| i\@maskray.me (email), MaskRay (Phabricator), MaskRay (GitHub)


Constant Expressions
~~~~~~~~~~~~~~~~~~~~
| Mariya Podchishchaeva
| mariya.podchishchaeva\@intel.com (email), Fznamznon (GitHub), fznamznon (Discord), Fznamznon (Discourse)


Thread Safety Analysis
~~~~~~~~~~~~~~~~~~~~~~
| Aaron Puchert
| aaron.puchert\@sap.com (email), aaronpuchert (GitHub), aaronpuchert (Discourse)


Function Effect Analysis
~~~~~~~~~~~~~~~~~~~~~~~~
| Doug Wyatt
| dwyatt\@apple.com (email), dougsonos (GitHub), dougsonos (Discourse)

| Sirraide
| aeternalmail\@gmail.com (email), Sirraide (GitHub), Ætérnal (Discord), Sirraide (Discourse)


Tools
-----
These maintainers are responsible for user-facing tools under the Clang
umbrella or components used to support such tools.


clang-format
~~~~~~~~~~~~
| MyDeveloperDay
| mydeveloperday\@gmail.com (email), MyDeveloperDay (Phabricator), MyDeveloperDay (GitHub)

| Owen Pan
| owenpiano\@gmail.com (email), owenpan (Phabricator), owenca (GitHub)


ABIs
----
The following people are responsible for decisions involving ABI.

Itanium ABI
~~~~~~~~~~~
| John McCall
| rjmccall\@apple.com (email), rjmccall (Phabricator), rjmccall (GitHub)


Microsoft ABI
~~~~~~~~~~~~~
| Reid Kleckner
| rnk\@google.com (email), rnk (Phabricator), rnk (GitHub)


ARM EABI
~~~~~~~~
| Anton Korobeynikov
| anton\@korobeynikov.info (email), asl (Phabricator), asl (GitHub)


Compiler-Wide Topics
--------------------
The following people are responsible for functionality that does not fit into
a single part of the compiler, but instead span multiple components within the
compiler.

Attributes
~~~~~~~~~~
| Erich Keane
| ekeane\@nvidia.com (email), ErichKeane (Phabricator), erichkeane (GitHub)


Plugins
~~~~~~~
| Vassil Vassilev
| Vassil.Vassilev\@cern.ch (email), v.g.vassilev (Phabricator), vgvassilev (GitHub)


Inline assembly
~~~~~~~~~~~~~~~
| Eric Christopher
| echristo\@gmail.com (email), echristo (Phabricator), echristo (GitHub)


Text encodings
~~~~~~~~~~~~~~
| Tom Honermann
| tom\@honermann.net (email), tahonermann (Phabricator), tahonermann (GitHub)

| Corentin Jabot
| corentin.jabot\@gmail.com (email), cor3ntin (Phabricator), cor3ntin (GitHub)


CMake integration
~~~~~~~~~~~~~~~~~
| Petr Hosek
| phosek\@google.com (email), phosek (Phabricator), petrhosek (GitHub)

| John Ericson
| git\@johnericson.me (email), Ericson2314 (Phabricator), Ericson2314 (GitHub)


General Windows support
~~~~~~~~~~~~~~~~~~~~~~~
| Reid Kleckner
| rnk\@google.com (email), rnk (Phabricator), rnk (GitHub)


Incremental compilation, REPLs, clang-repl
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Vassil Vassilev
| Vassil.Vassilev\@cern.ch (email), v.g.vassilev (Phabricator), vgvassilev (GitHub)


Standards Conformance
---------------------
The following people are responsible for validating that changes are conforming
to a relevant standard. Contact them for questions about how to interpret a
standard, when fixing standards bugs, or when implementing a new standard feature.

C conformance
~~~~~~~~~~~~~
| Aaron Ballman
| aaron\@aaronballman.com (email), aaron.ballman (Phabricator), AaronBallman (GitHub), AaronBallman (Discourse), aaronballman (Discord)


C++ conformance
~~~~~~~~~~~~~~~
| Hubert Tong
| hubert.reinterpretcast\@gmail.com (email), hubert.reinterpretcast (Phabricator), hubert-reinterpretcast (GitHub)

| Shafik Yaghmour
| shafik.yaghmour\@intel.com (email), shafik (GitHub), shafik.yaghmour (Discord), shafik (Discourse)

| Vlad Serebrennikov
| serebrennikov.vladislav\@gmail.com (email), Endilll (GitHub), Endill (Discord), Endill (Discourse)


C++ Defect Reports
~~~~~~~~~~~~~~~~~~
| Vlad Serebrennikov
| serebrennikov.vladislav\@gmail.com (email), Endilll (GitHub), Endill (Discord), Endill (Discourse)


Objective-C/C++ conformance
~~~~~~~~~~~~~~~~~~~~~~~~~~~
| John McCall
| rjmccall\@apple.com (email), rjmccall (Phabricator), rjmccall (GitHub)


OpenMP conformance
~~~~~~~~~~~~~~~~~~
| Alexey Bataev
| a.bataev\@hotmail.com (email), ABataev (Phabricator), alexey-bataev (GitHub)


OpenCL conformance
~~~~~~~~~~~~~~~~~~
| Sven van Haastregt
| sven.vanhaastregt\@arm.com (email), svenvh (GitHub)


OpenACC
~~~~~~~
| Erich Keane
| ekeane\@nvidia.com (email), ErichKeane (Phabricator), erichkeane (GitHub)


SYCL conformance
~~~~~~~~~~~~~~~~
| Alexey Bader
| alexey.bader\@intel.com (email), bader (Phabricator), bader (GitHub)


HLSL conformance
~~~~~~~~~~~~~~~~
| Chris Bieneman
| chris.bieneman\@gmail.com (email), llvm-beanz (GitHub), beanz (Discord), beanz (Discourse)


Issue Triage
~~~~~~~~~~~~
| Shafik Yaghmour
| shafik.yaghmour\@intel.com (email), shafik (GitHub), shafik.yaghmour (Discord), shafik (Discourse)

| hstk30
| hanwei62\@huawei.com (email), hstk30-hw (GitHub), hstk30(Discord), hstk30 (Discourse)


Inactive Maintainers
====================
The following people have graciously spent time performing maintainership
responsibilities but are no longer active in that role. Thank you for all your
help with the success of the project!

Emeritus Lead Maintainers
-------------------------
| Doug Gregor (dgregor\@apple.com)
| Richard Smith (richard\@metafoo.co.uk)


Inactive component maintainers
------------------------------
| Anastasia Stulova (stulovaa\@gmail.com) -- OpenCL, C++ for OpenCL
| Chandler Carruth (chandlerc\@gmail.com, chandlerc\@google.com) -- CMake, library layering
| Devin Coughlin (dcoughlin\@apple.com) -- Clang static analyzer
| Manuel Klimek (klimek\@google.com (email), klimek (Phabricator), r4nt (GitHub)) -- Tooling, AST matchers
