contrib : expand [no ci]
This commit is contained in:
parent
b6f9640157
commit
95d87cbf65
1 changed files with 26 additions and 9 deletions
|
@ -24,23 +24,25 @@
|
||||||
- Clean-up any trailing whitespaces, use 4 spaces for indentation, brackets on the same line, `void * ptr`, `int & a`
|
- Clean-up any trailing whitespaces, use 4 spaces for indentation, brackets on the same line, `void * ptr`, `int & a`
|
||||||
- Use sized integer types in the public API
|
- Use sized integer types in the public API
|
||||||
- Declare structs with `struct foo {}` instead of `typedef struct foo {} foo`
|
- Declare structs with `struct foo {}` instead of `typedef struct foo {} foo`
|
||||||
- In C++ code omit the `struct` keyword whenever it is not necessary
|
- In C++ code omit optional `struct` and `enum` keyword whenever they are not necessary
|
||||||
|
```cpp
|
||||||
|
// OK
|
||||||
|
llama_context * ctx;
|
||||||
|
const llama_rope_type rope_type;
|
||||||
|
|
||||||
|
// not OK
|
||||||
|
struct llama_context * ctx;
|
||||||
|
const enum llama_rope_type rope_type;
|
||||||
|
```
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> This guideline is yet to be applied to the `llama.cpp` codebase. New code should follow this guideline.
|
> This guideline is yet to be applied to the `llama.cpp` codebase. New code should follow this guideline.
|
||||||
- Try to follow the existing patterns in the code (indentation, spaces, etc.). In case of doubt use `clang-format` to format the added code
|
- Try to follow the existing patterns in the code (indentation, spaces, etc.). In case of doubt use `clang-format` to format the added code
|
||||||
|
- For anything not covered in the current guidelines, refer to the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
|
||||||
- Tensors store data in row-major order. We refer to dimension 0 as columns, 1 as rows, 2 as matrices
|
- Tensors store data in row-major order. We refer to dimension 0 as columns, 1 as rows, 2 as matrices
|
||||||
- Matrix multiplication is unconventional: [`C = ggml_mul_mat(ctx, A, B)`](https://github.com/ggerganov/llama.cpp/blob/880e352277fc017df4d5794f0c21c44e1eae2b84/ggml.h#L1058-L1064) means $C^T = A B^T \Leftrightarrow C = B A^T.$
|
- Matrix multiplication is unconventional: [`C = ggml_mul_mat(ctx, A, B)`](https://github.com/ggerganov/llama.cpp/blob/880e352277fc017df4d5794f0c21c44e1eae2b84/ggml.h#L1058-L1064) means $C^T = A B^T \Leftrightarrow C = B A^T.$
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
- Preprocessor directives
|
|
||||||
- (TODO: add guidelines with examples and apply them to the codebase)
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
#ifdef FOO
|
|
||||||
#endif // FOO
|
|
||||||
```
|
|
||||||
|
|
||||||
# Naming guidelines
|
# Naming guidelines
|
||||||
|
|
||||||
- Use `snake_case` for function, variable and type names
|
- Use `snake_case` for function, variable and type names
|
||||||
|
@ -98,6 +100,21 @@
|
||||||
|
|
||||||
- (TODO: abbreviations usage)
|
- (TODO: abbreviations usage)
|
||||||
|
|
||||||
|
# Preprocessor directives
|
||||||
|
|
||||||
|
- (TODO: add guidelines with examples and apply them to the codebase)
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
#ifdef FOO
|
||||||
|
#endif // FOO
|
||||||
|
```
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
|
||||||
|
- Documentation is a community effort
|
||||||
|
- When you need to look into the source code to figure out implementation details to figure out how to use an API consider adding a short summary to the header file for future reference
|
||||||
|
- When you notice incorrect or outdated documentation, please update it
|
||||||
|
|
||||||
# Resources
|
# Resources
|
||||||
|
|
||||||
The Github issues, PRs and discussions contain a lot of information that can be useful to get familiar with the codebase. For convenience, some of the more important information is referenced from Github projects:
|
The Github issues, PRs and discussions contain a lot of information that can be useful to get familiar with the codebase. For convenience, some of the more important information is referenced from Github projects:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue