The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/2202
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Signed-off-by: Christian Brauner <[email protected]>
From 0c9119fc1f465a53ae024d5912c5eb801c3305a9 Mon Sep 17 00:00:00 2001 From: Christian Brauner <[email protected]> Date: Fri, 2 Mar 2018 12:18:38 +0100 Subject: [PATCH 1/3] CODING_STYLE: remove duplicate _exit() entry Signed-off-by: Christian Brauner <[email protected]> --- CODING_STYLE.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/CODING_STYLE.md b/CODING_STYLE.md index a3bf41a4a..4a88bb898 100644 --- a/CODING_STYLE.md +++ b/CODING_STYLE.md @@ -433,13 +433,6 @@ rules to use them: } ``` -#### Use `_exit()` in `fork()`ed Processes - -- This has multiple reasons but the gist is: - - `exit()` is not thread-safe - - `exit()` in libc runs exit handlers which might interfer with the parents - state - #### Use `for (;;)` instead of `while (1)` or `while (true)` - Let's be honest, it is really the only sensible way to do this. From 3b2568fa77a39d19ef4779665fe0df689634b700 Mon Sep 17 00:00:00 2001 From: Christian Brauner <[email protected]> Date: Fri, 2 Mar 2018 12:29:30 +0100 Subject: [PATCH 2/3] CODING_STYLE: clang-format Signed-off-by: Christian Brauner <[email protected]> --- CODING_STYLE.md | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/CODING_STYLE.md b/CODING_STYLE.md index 4a88bb898..0d14e56aa 100644 --- a/CODING_STYLE.md +++ b/CODING_STYLE.md @@ -16,6 +16,50 @@ style and add their Signed-off-by line to it. This is especially helpful to make it easier for first-time contributors and to prevent having pull requests being stuck in the merge queue because of minor details. +- We currently do not provide automatic coding style checks but if a suitable + tools is found we are happy to integrate it into our test suite. It is + possible and recommended to use the `clang-format` binary to check your code. + The following options are an approximation of the coding style used here. + Simply create a file called `.clang-format` in your home directory with the + following options: + ``` + cat << EOF > "${HOME}"/.clang-format + BreakBeforeBraces: Attach + AlwaysBreakBeforeMultilineStrings: false + BreakBeforeBinaryOperators: None + MaxEmptyLinesToKeep: 1 + PenaltyBreakBeforeFirstCallParameter: 1000000 + BinPackArguments: true + BinPackParameters: true + AllowAllParametersOfDeclarationOnNextLine: false + AlignAfterOpenBracket: true + SpacesInSquareBrackets: false + SpacesInCStyleCastParentheses: false + SpaceInEmptyParentheses: false + SpaceBeforeParens: ControlStatements + SpaceAfterCStyleCast: false + SortIncludes: true + PenaltyReturnTypeOnItsOwnLine: 10000 + PenaltyExcessCharacter: 10 + Language: Cpp + ForEachMacros: ['lxc_list_for_each', 'lxc_list_for_each_safe'] + AllowShortLoopsOnASingleLine: false + AllowShortIfStatementsOnASingleLine: false + AllowShortFunctionsOnASingleLine: None + AllowShortCaseLabelsOnASingleLine: false + AllowShortBlocksOnASingleLine: false + BasedOnStyle: LLVM + TabWidth: 8 + IndentWidth: 8 + UseTab: Always + BreakBeforeBraces: Linux + AllowShortIfStatementsOnASingleLine: false + IndentCaseLabels: false + EOF + ``` + However, it will not handle all cases correctly. For example, most `struct` + initializations will not be correct. In such cases please refer to the coding + style here. #### Only Use Tabs From 099cc6ece3031786e8c998e1fcdf4e6c841f118a Mon Sep 17 00:00:00 2001 From: Christian Brauner <[email protected]> Date: Fri, 2 Mar 2018 12:50:55 +0100 Subject: [PATCH 3/3] CODING_STYLE: arrays of structs Signed-off-by: Christian Brauner <[email protected]> --- CODING_STYLE.md | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/CODING_STYLE.md b/CODING_STYLE.md index 0d14e56aa..af8bcf939 100644 --- a/CODING_STYLE.md +++ b/CODING_STYLE.md @@ -24,6 +24,7 @@ following options: ``` cat << EOF > "${HOME}"/.clang-format + AlignEscapedNewlines: Left BreakBeforeBraces: Attach AlwaysBreakBeforeMultilineStrings: false BreakBeforeBinaryOperators: None @@ -554,3 +555,110 @@ rules to use them: - When `fork()`ing off a child process use `_exit()` to terminate it instead of `exit()`. The `exit()` function is not thread-safe and thus not suited for the shared library which must ensure that it is thread-safe. + +#### Keep Arrays of `struct`s Aligned Horizontally When Initializing + +- Arrays of `struct`s are: + ``` + struct foo_struct { + int n; + int m; + int p; + }; + + struct foo_struct new_instance[] = { + { 1, 2, 3 }, + { 4, 5, 6 }, + { 7, 8, 9 }, + }; + ``` +- Leave a single space after the opening `{` and before closing `}` of the + largest member of the last column. +- Always leave a single space between the largest member of the current column + and the member in the next column. +- A good example is + ``` + struct signame { + int num; + const char *name; + }; + + static const struct signame signames[] = { + { SIGHUP, "HUP" }, + { SIGINT, "INT" }, + { SIGQUIT, "QUIT" }, + { SIGILL, "ILL" }, + { SIGABRT, "ABRT" }, + { SIGFPE, "FPE" }, + { SIGKILL, "KILL" }, + { SIGSEGV, "SEGV" }, + { SIGPIPE, "PIPE" }, + { SIGALRM, "ALRM" }, + { SIGTERM, "TERM" }, + { SIGUSR1, "USR1" }, + { SIGUSR2, "USR2" }, + { SIGCHLD, "CHLD" }, + { SIGCONT, "CONT" }, + { SIGSTOP, "STOP" }, + { SIGTSTP, "TSTP" }, + { SIGTTIN, "TTIN" }, + { SIGTTOU, "TTOU" }, + #ifdef SIGTRAP + { SIGTRAP, "TRAP" }, + #endif + #ifdef SIGIOT + { SIGIOT, "IOT" }, + #endif + #ifdef SIGEMT + { SIGEMT, "EMT" }, + #endif + #ifdef SIGBUS + { SIGBUS, "BUS" }, + #endif + #ifdef SIGSTKFLT + { SIGSTKFLT, "STKFLT" }, + #endif + #ifdef SIGCLD + { SIGCLD, "CLD" }, + #endif + #ifdef SIGURG + { SIGURG, "URG" }, + #endif + #ifdef SIGXCPU + { SIGXCPU, "XCPU" }, + #endif + #ifdef SIGXFSZ + { SIGXFSZ, "XFSZ" }, + #endif + #ifdef SIGVTALRM + { SIGVTALRM, "VTALRM" }, + #endif + #ifdef SIGPROF + { SIGPROF, "PROF" }, + #endif + #ifdef SIGWINCH + { SIGWINCH, "WINCH" }, + #endif + #ifdef SIGIO + { SIGIO, "IO" }, + #endif + #ifdef SIGPOLL + { SIGPOLL, "POLL" }, + #endif + #ifdef SIGINFO + { SIGINFO, "INFO" }, + #endif + #ifdef SIGLOST + { SIGLOST, "LOST" }, + #endif + #ifdef SIGPWR + { SIGPWR, "PWR" }, + #endif + #ifdef SIGUNUSED + { SIGUNUSED, "UNUSED" }, + #endif + #ifdef SIGSYS + { SIGSYS, "SYS" }, + #endif + }; + ```
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
