.. _mailing_lists:

Mailing Lists
=============

 * `LLVM Announcements List
   <http://lists.cs.uiuc.edu/mailman/listinfo/llvm-announce>`_

   This is a low volume list that provides important announcements regarding
   LLVM.  It gets email about once a month.

 * `Developer's List <http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev>`_

   This list is for people who want to be included in technical discussions of
   LLVM. People post to this list when they have questions about writing code
   for or using the LLVM tools. It is relatively low volume.

 * `Bugs & Patches Archive <http://lists.cs.uiuc.edu/pipermail/llvmbugs/>`_

   This list gets emailed every time a bug is opened and closed, and when people
   submit patches to be included in LLVM.  It is higher volume than the LLVMdev
   list.

 * `Commits Archive <http://lists.cs.uiuc.edu/pipermail/llvm-commits/>`_

   This list contains all commit messages that are made when LLVM developers
   commit code changes to the repository. It is useful for those who want to
   stay on the bleeding edge of LLVM development. This list is very high volume.

 * `Test Results Archive
   <http://lists.cs.uiuc.edu/pipermail/llvm-testresults/>`_

   A message is automatically sent to this list by every active nightly tester
   when it completes.  As such, this list gets email several times each day,
   making it a high volume list.
