Changes between Version 5 and Version 6 of kit_WP3


Ignore:
Timestamp:
Feb 11, 2011, 8:46:40 AM (14 years ago)
Author:
Suren A. Chilingaryan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • kit_WP3

    v5 v6  
    1 == [Proposal] Coding Style ==
    2 
    3 In general, the [http://kerneltrap.org/files/Jeremy/CodingStyle.txt coding standards] used in the Linux kernel are versatile, comprehensive and quite good looking. They are boiling down to the following guide lines:
    4 
    5  Indentation:: Hardtabs
    6  Spaces:: Spaces around keywords but not in inner parenthesis.
    7  Brace placement:: '{' at end of line except for function definition and '}' on its own line except in do-while-loops.
    8  Naming:: Descriptive for global functions and usually lower case with underscores.
    9  Macros:: Upper case for constants, lower case with underscores for macros resembling functions.
    10  Structures:: No typedefs, although this is debatable. For shared data structures reference counting should be implemented.
    11 
    12 I would add the following:
    13 
    14  Position of C-pointer star:: At variable name not type.
    15  const:: Wherever possible.
    16  White space:: Avoid at all costs.
    17  C99:: Enable it and declare variables only when needed.
    18 
    19 There are still some open questions:
    20 
    21 * Number of white lines to separate functions?
    22 * Comments: C vs. C++ style, usage of '*'?
    23 * Alignment of multiple assignments?
    24 * Breaking of long lines, especially argument lists?
    25 * #define indentation? Commenting each #endif with the corresponding #define name makes the code hard to read in my opinion.
    26 * Documentation tools? ([http://www.stack.nl/~dimitri/doxygen/ Doxygen], [http://sphinx.pocoo.org/ Sphinx], [http://www.naturaldocs.org/ Natural Docs])
    27 * Name prefixes? (e.g. 'g_' for global)
    28 
    29 In essence, a bit of code would look like that:
    30 
    31 {{{
    32 #!c
    33 #define PI 3.14159265
    34 #define min(a,b) ((a) < (b) ? (a) : (b))
    35 
    36 struct string {
    37     char *content;
    38     size_t length;
    39     int refcount;
    40 };
    41 
    42 struct string* clone_string(const char *s)
    43 {
    44     if (s == NULL)
    45         return NULL;
    46 
    47     struct string *clone = (struct string *) malloc(sizeof(struct string));
    48     const int len = strlen(s);
    49     clone->content = (char *) malloc(len);
    50     clone->length = len;
    51     clone->refcount = 1;
    52     strncpy(clone->content, s, len);
    53 
    54     return clone;
    55 }
    56 }}}
    571
    582== PyHST and OpenCL ==
    59 
    60 To a certain degree, PyHST has been ported to OpenCL. Check-out the code via
    61 
    62 * git clone ssh://<user>@ipefser1.fzk.de/home/ipefser1/vogelgesang/repos/oclfft.git
    63 * git clone ssh://<user>@ipefser1.fzk.de/home/ipefser1/vogelgesang/repos/pyHST.git
    64 
    653Build and install the OpenCL FFT library
    664