[libc-commits] [PATCH] D136961: [libc] Add a contributing guide to the docs.

Siva Chandra via Phabricator via libc-commits libc-commits at lists.llvm.org
Wed Nov 2 08:02:35 PDT 2022


This revision was automatically updated to reflect the committed changes.
Closed by commit rGa2a87ee7e9cd: [libc] Add a contributing guide to the docs. (authored by sivachandra).

Changed prior to commit:
  https://reviews.llvm.org/D136961?vs=471577&id=472615#toc

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D136961/new/

https://reviews.llvm.org/D136961

Files:
  libc/docs/clang_tidy_checks.rst
  libc/docs/contributing.rst
  libc/docs/index.rst
  libc/docs/math.rst


Index: libc/docs/math.rst
===================================================================
--- libc/docs/math.rst
+++ libc/docs/math.rst
@@ -1,3 +1,5 @@
+.. _math:
+
 ==============
 Math Functions
 ==============
Index: libc/docs/index.rst
===================================================================
--- libc/docs/index.rst
+++ libc/docs/index.rst
@@ -79,6 +79,7 @@
    mechanics_of_public_api
    source_layout
    porting
+   contributing
 
 .. toctree::
    :hidden:
Index: libc/docs/contributing.rst
===================================================================
--- /dev/null
+++ libc/docs/contributing.rst
@@ -0,0 +1,56 @@
+.. _contributing:
+
+================================
+Contributing to the libc Project
+================================
+
+LLVM's libc is being developed as part of the LLVM project so contributions
+to the libc project should also follow the general LLVM
+`contribution guidelines <https://llvm.org/docs/Contributing.html>`_. Below is
+a list of open projects that one can start with:
+
+#. **Cleanup code-style** - The libc project follows the general
+   `LLVM style <https://llvm.org/docs/CodingStandards.html>`_ but differs in a
+   few aspects: We use ``snake_case`` for non-constant variable and function
+   names,``CamelCase`` for internal type names (those which are not defined in a
+   public header), and ``CAPITILIZED_SNAKE_CASE`` for constants. When we started
+   working on the project, we started using the general LLVM style for
+   everything. However, for a short period, we switched to the style that is
+   currently followed by the `LLD project <https://github.com/llvm/llvm-project/tree/main/lld>`_.
+   But, considering that we implement a lot of functions and types whose names
+   are prescribed by the standards, we have settled on the style described above.
+   However, we have not switched over to this style in all parts of the ``libc``
+   directory. So, a simple but mechanical project would be to move the parts
+   following the old styles to the new style.
+
+#. **Integrating with the rest of the LLVM project** - There are two parts to
+   this project:
+
+   #. One is about adding CMake facilities to optionally link the libc's overlay
+      static archive (see :ref:`overlay_mode`) with other LLVM tools/executables.
+   #. The other is about putting plumbing in place to release the overlay static
+      archive (see :ref:`overlay_mode`) as part of the LLVM binary releases. 
+
+#. **Implement Linux syscall wrappers** - A large portion of the POSIX API can
+   be implemented as syscall wrappers on Linux. A good number have already been
+   implemented but many more are yet to be implemented. So, a project of medium
+   complexity would be to implement syscall wrappers which have not yet been
+   implemented.
+
+#. **Add a better random number generator** - The current random number
+   generator has a very small range. This has to be improved or switched over
+   to a fast random number generator with a large range.
+
+#. **Update the clang-tidy lint rules and use them in the build and/or CI** -
+   Currently, the :ref:`clangtidy_rules` have gone stale and are mostly unused
+   by the developers and on the CI builders. This project is about updating
+   them and reintegrating them back with the build and running them on the
+   CI builders.
+
+#. **double and higher precision math functions** - These are under active
+   developement but you can take a shot at those not yet implemented. See
+   :ref:`math` for more information.
+
+#. **Contribute a new OS/Architecture port** - You can contribute a new
+   operating system or target architecture port. See :ref:`porting` for more
+   informaton.
Index: libc/docs/clang_tidy_checks.rst
===================================================================
--- libc/docs/clang_tidy_checks.rst
+++ libc/docs/clang_tidy_checks.rst
@@ -1,3 +1,5 @@
+.. _clangtidy_rules:
+
 LLVM libc clang-tidy checks
 ===========================
 These are the clang-tidy checks designed to help enforce implementation


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D136961.472615.patch
Type: text/x-patch
Size: 4063 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libc-commits/attachments/20221102/5dc742fc/attachment.bin>


More information about the libc-commits mailing list