3 mruby is an open-source project which is looking forward to each contribution.
7 To make it easy to review and understand your change please keep the following
8 things in mind before submitting your pull request:
10 * Work on the latest possible state of **mruby/master**
11 * Create a branch which is dedicated to your change
12 * Test your changes before creating a pull request (```./minirake test```)
13 * If possible write a test case which confirms your change
14 * Don't mix several features or bug-fixes in one pull request
15 * Create a meaningful commit message
16 * Explain your change (i.e. with a link to the issue you are fixing)
17 * Use mrbgem to provide non ISO features (classes, modules and methods) unless
18 you have a special reason to implement them in the core
22 How to style your C and Ruby code which you want to submit.
26 The core part (parser, bytecode-interpreter, core-lib, etc.) of mruby is
27 written in the C programming language. Please note the following hints for your
30 #### Comply with C99 (ISO/IEC 9899:1999)
32 mruby should be highly portable to other systems and compilers. For this it is
33 recommended to keep your code as close as possible to the C99 standard
34 (http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf).
36 Although we target C99, Visual C++ is also an important target for mruby. For
37 this reason a declaration of a local variable has to be at the beginning of a
40 #### Reduce library dependencies to a minimum
42 The dependencies to libraries should be kept to an absolute minimum. This
43 increases the portability but makes it also easier to cut away parts of mruby
46 #### Don't use C++ style comments
48 /* This is the preferred comment style */
50 Use C++ style comments only for temporary comment e.g. commenting out some code lines.
52 #### Insert a break after the method return value:
62 Parts of the standard library of mruby are written in the Ruby programming
63 language itself. Please note the following hints for your Ruby code:
65 #### Comply with the Ruby standard (ISO/IEC 30170:2012)
67 mruby is currently targeting to execute Ruby code which complies to ISO/IEC
68 30170:2012 (http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579).