... | ... | @@ -20,11 +20,14 @@ compilate se si usa -DNDEBUG. |
|
|
Il problema di questo approccio e' che bisogna ricordarsi di non fare mai
|
|
|
init dentro le assert:
|
|
|
|
|
|
```C++
|
|
|
```cpp
|
|
|
assert( init_blabla(...) == true ); // non viene invocata init_blabla
|
|
|
// se NDEBUG e' definito.
|
|
|
```
|
|
|
|
|
|
----------------------------
|
|
|
### Logger
|
|
|
|
|
|
Per il logger, date un'occhiata [Log.cpp](https://the.al/share/_/pqyewIt6b4r.txt)
|
|
|
e [Log.h](https://the.al/share/_/pWoTjUhaN.txt)
|
|
|
|
... | ... | @@ -74,31 +77,17 @@ e.. a fare il lavoro 2 volte (ground e razzo) finiamo che ci dimentichiamo |
|
|
qualcosa e ci son inconsistenze
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Linter
|
|
|
|
|
|
Esiste un linter che vi dice se il codice scritto contiene alcuni problemi
|
|
|
comuni.. anche cose nostre personali tipo se è stato scritto "Matteo Piazzolla"
|
|
|
invece di "matteo michele piazzolla" :P
|
|
|
### Cos'è --gen-faults di sbs? Cos'e data/fault.csv?
|
|
|
|
|
|
Il linter si trova in ./scripts/linter.sh e va lanciato usando come working
|
|
|
directory skyward-boardcore. Praticamente
|
|
|
|
|
|
```
|
|
|
cd skyward-boardcore
|
|
|
./scripts/linter.sh
|
|
|
```
|
|
|
|
|
|
Cose che controlla:
|
|
|
- Max 80 colonne
|
|
|
- Evitare tripli \n\n\n
|
|
|
- Files senza copyright
|
|
|
- Tab invece di spazi
|
|
|
- Matteo Michele Piazzolla
|
|
|
- Lancia cppcheck e controlla che non dia warning (ora ne da tanti, plz fixate)
|
|
|
- Non ci siano header files con using namespace.
|
|
|
Per evitare inconsistenze, abbiamo fatto un csv con tutti i fault counters,
|
|
|
descriizoni e altro (apribile tranquillamente con excel) e lanciando
|
|
|
./sbs -g, questo csv viene convertito in un header file che viene incluso
|
|
|
nella cartella dei fault counter.
|
|
|
|
|
|
Diciamo che è un software molto molto semplice, è una collezione di chiamate
|
|
|
a comandi bash. Quindi puo produrre falsi positivi.
|
|
|
Durante la generazione il csv viene modificato; c'e 'Generated name' (colonna)
|
|
|
che viene impostata e non viene piu toccata se è gia scritta, questo implica
|
|
|
che se non vi piace un nome generato lo potete cambiare (todo: da verificare
|
|
|
se ho fatto veramente cosi lol)
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Lincenza
|
... | ... | @@ -153,19 +142,6 @@ qualche errore (che spero non avvenga mai!) viene linkato un file compilato |
|
|
per un'arch nel binario di un'altra arch. O comunque, stessa architettura
|
|
|
ma in un eseguibile ci son alcune "define" definite, in altri no. ecc.
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Cos'e --gen-faults di sbs? Cos'e data/fault.csv?
|
|
|
|
|
|
Per evitare inconsistenze, abbiamo fatto un csv con tutti i fault counters,
|
|
|
descriizoni e altro (apribile tranquillamente con excel) e lanciando
|
|
|
./sbs -g, questo csv viene convertito in un header file che viene incluso
|
|
|
nella cartella dei fault counter.
|
|
|
|
|
|
Durante la generazione il csv viene modificato; c'e 'Generated name' (colonna)
|
|
|
che viene impostata e non viene piu toccata se è gia scritta, questo implica
|
|
|
che se non vi piace un nome generato lo potete cambiare (todo: da verificare
|
|
|
se ho fatto veramente cosi lol)
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### BusTemplate aka Il Demonio
|
|
|
|
... | ... | @@ -257,44 +233,6 @@ Lista: |
|
|
sulla wiki di miosix (scusate, sono pigro
|
|
|
e non avevo voglia di rifare tutto ogni volta).
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Come usare clang-format
|
|
|
|
|
|
Se avete un plugin per il vostro ide tanto meglio, altrimenti potete lanciarlo
|
|
|
da command line con
|
|
|
`cat source.cpp | clang-format > source_figo.cpp`
|
|
|
oppure
|
|
|
`clang-format -i source.cpp`
|
|
|
oppure
|
|
|
`find src/ -iname "*.cpp" -exec clang-format -i "{}" \;`
|
|
|
(ocio a tenere 'src/' se no reindenta tutto miosix XD)
|
|
|
|
|
|
clang-format cerca un file chiamato '.clang-format' nella cartella attuale
|
|
|
o va a guardare tutte tutte le cartelle sopra. Se non lo trova, usa una config
|
|
|
di default che non mi piace (lo vedert subito perche usa 2 spazi e parentesi
|
|
|
in linea).
|
|
|
|
|
|
Ho visto che ogni tanto (non capisco il criterio) decide di indentare male
|
|
|
le enum belle allineate. Potete evitare che tocchi qualche zona di codice
|
|
|
mettendola fra
|
|
|
```
|
|
|
// clang-format off
|
|
|
...codice da non toccare
|
|
|
// clang-format on
|
|
|
```
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Altre info random:
|
|
|
|
|
|
src/shared è passata con -I al compilatore, questo significa che se volete
|
|
|
includere src/shared/Common.h, basta fare #include <Common.h>
|
|
|
|
|
|
*pr0tip*: Invece di includere in vari header files <miosix.h> <pthread.h> o quel
|
|
|
che volete, guardate se questi sono in src/shared/Common.h e includete quello :D
|
|
|
|
|
|
*pr0tip*: #pragma once non è standard e piace solo a piazzolla, se riuscite usate
|
|
|
le solite include guard #ifndef X #define X ..... #endif
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
### Serializzazione:
|
|
|
|
... | ... | |