blob: 7aece05a3e50bfb7f85013d1b19b9078f3a9aa25 [file] [log] [blame] [edit]
========================
Libsycl Coding Standards
========================
.. contents::
:local:
Introduction
============
The ``libsycl`` project follows the
`LLVM Coding Standards <https://llvm.org/docs/CodingStandards.html>`_ with
exceptions as described in this document.
Naming
------
Names of Macros, Types, Functions, Variables, and Enumerators
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Entities specified by the SYCL specification are named as required by the SYCL
specification. Names of all other entities follow the guidance in the LLVM
Coding Standards.
Names of Files and Directories
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* **Directory Names** should be in snake case (e.g. ``test_e2e``) except in
cases where LLVM project wide conventions are used. For example, LIT tests
often use an ``Inputs`` directory to hold files that are used by tests but
that should be excluded from test discovery.
* **File Names in snake case** should be used for all C++ implementation files.
For example files in directories ``include``, ``src``, ``test``, ``utils``,
and ``tools`` should be named in snake case.
* **File Names in camel case** should be used for most other files. For example
files in directories ``cmake/modules`` and ``docs`` should be named in camel
case.