| ======================== | |
| 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. |