diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/coding_conventions.md | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/doc/coding_conventions.md b/doc/coding_conventions.md new file mode 100644 index 000000000..aa47fe980 --- /dev/null +++ b/doc/coding_conventions.md @@ -0,0 +1,48 @@ +# Coding conventions + +How to style your C and Ruby code which you want to submit. + +## C code + +The core part (parser, bytecode-interpreter, core-lib, etc.) of mruby is +written in the C programming language. Please note the following hints for your +C code: + +### Comply with C99 (ISO/IEC 9899:1999) + +mruby should be highly portable to other systems and compilers. For that it is +recommended to keep your code as close as possible to the C99 standard +(http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf). + +Although we target C99, VC is also an important target for mruby, so that we +avoid local variable declaration in the middle. + +### Reduce library dependencies to a minimum + +The dependencies to libraries should be put to an absolute minimum. This +increases the portability but makes it also easier to cut away parts of mruby +on-demand. + +### Don't use C++ style comments + + /* This is the prefered comment style */ + +Use C++ style comments only for temporary comment e.g. commenting out some code lines. + +### Insert a break after the method return value: + + int + main(void) + { + ... + } + +## Ruby code + +Parts of the standard library of mruby is written in the Ruby programming language +itself. Please note the following hints for your Ruby code: + +### Comply with the Ruby standard (ISO/IEC 30170:2012) + +mruby is currently targeting to execute Ruby code which complies to ISO/IEC +30170:2012 (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579). |
