Decide on and enforce house C++ style
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
Direzione di ricerca
Iniziate esaminando gli esempi di denominazione proposti in questa issue e la pull request correlata #992. Utilizzate il controllo readability-identifier-naming di clang-tidy per valutare come potrebbero essere applicate le convenzioni proposte. Il lavoro è completato solo dopo che il progetto ha concordato uno stile e definito un approccio alla migrazione; non sono stati identificati file o test specifici.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Introduction
After https://github.com/runtimeverification/llvm-backend/pull/992 [^1], I think it's worth putting the effort in to properly clean up our C++ code with a house style. We use a bunch of different styles in the C++ code, and there is no strong consensus for what the correct solution will look like. This issue is an attempt at an opinionated set of defaults that we can bikeshed, then start to apply gradually to the code.[^2]
[!NOTE]
There are a few things that are out of scope here. We already have a consistent structural style for the code that's enforced conveniently byclang-format, and similarly we have a lot of semantic best practices and conventions being enforced byclang-tidy. We can therefore restrict the bikeshedding here to naming aesthetics and consistency.
Proposed Style
#define MACRO_IF_NEEDED(x) x
namespace some_namespace_name {
enum class some_enum {
variant_a,
variant_b,
};
template <typename TypeParameter>
class some_class_name {
public:
void member_function() const;
private:
int member_variable_ = 0;
};
void some_class_name::member_function() const {
auto local_var = f();
free_function(member_variable_);
}
void free_function(int my_parameter_name) {
...
}
}
Some things we should also consider that are not directly naming style:
- Prefixing
extern "C"functions with a prefix likekllvm_(see #992) - Using namespaces rather than purely textual namespacing (e.g.
kore::composite_patternrather thankllvm::KORECompositePattern).
Migration Strategy
Once we agree on a style, it should be easily achievable to migrate one stylistic element at a time using clang-tidy.
[^1]: We'd have avoided this pain by enforcing a consistent naming prefix for our C code so as to remain hygienic when interfacing with the outside world. Nobody other than us is naming their functions kllvm_arena_alloc!
[^2]: We can hopefully clean up or improve some of the bigger, gnarlier functions that are currently exempted from clang-tidy's congitive-complexity warnings when we do this.
- Lingua principale
- C++
- Stelle
- 43
- Fork
- 22
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di runtimeverification/llvm-backend
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
runtimeverification/llvm-backend#1221 · 1 commento ·
-
code generation wontfix
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
runtimeverification/llvm-backend#1211 ·
-
bug garbage collection
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
runtimeverification/llvm-backend#1204 ·
-
Performance overhead in proof_trace_callback_writerForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
runtimeverification/llvm-backend#1197 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
runtimeverification/llvm-backend#1196 ·
Tutte le issue di runtimeverification/llvm-backend
Issue simili
-
Broken links in the docsAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
microsoft/onnxruntime#33018 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
DataLakeFileSystemClient::ListPaths() throws JSON exception due to accessing undefined fieldsApertacustomer-reported needs-triage question
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Azure/azure-sdk-for-cpp#7435 ·
I maintainer di solito rispondono entro 1 giorno
-
ChromieCraft Generic Confirmed World Event
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
azerothcore/azerothcore-wotlk#27882 ·
I maintainer di solito rispondono entro 1 giorno
-
MacOS build failureApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
aristocratos/btop#1874 ·
I maintainer di solito rispondono entro 1 giorno