mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge branch 'master' of github.com:mruby/mruby
This commit is contained in:
@@ -1,14 +1,31 @@
|
||||
# Coding conventions
|
||||
# How to contribute
|
||||
|
||||
mruby is an open-source project which is looking forward to each contribution.
|
||||
|
||||
## Your Pull Request
|
||||
|
||||
To make it easy to review and understand your change please keep the following
|
||||
things in mind before submitting your pull request:
|
||||
|
||||
* Work on the latest possible state of **mruby/master**
|
||||
* Test your changes before creating a pull request (**make test**)
|
||||
* If possible write a test case which confirms your change
|
||||
* Don't mix several features or bug-fixes in one pull request
|
||||
* Create a branch which is dedicated to your change
|
||||
* Create a meaningful commit message
|
||||
* Explain your change (i.e. with a link to the issue you are fixing)
|
||||
|
||||
## Coding conventions
|
||||
|
||||
How to style your C and Ruby code which you want to submit.
|
||||
|
||||
## C code
|
||||
### 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)
|
||||
#### 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
|
||||
@@ -17,19 +34,19 @@ recommended to keep your code as close as possible to the C99 standard
|
||||
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
|
||||
#### 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
|
||||
#### 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:
|
||||
#### Insert a break after the method return value:
|
||||
|
||||
int
|
||||
main(void)
|
||||
@@ -37,12 +54,12 @@ Use C++ style comments only for temporary comment e.g. commenting out some code
|
||||
...
|
||||
}
|
||||
|
||||
## Ruby code
|
||||
### 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)
|
||||
#### 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).
|
||||
@@ -0,0 +1,37 @@
|
||||
#
|
||||
# Typical usage:
|
||||
# 0) install cmake version 2.8-9 or higher.
|
||||
# 1) install a PizzaFactory cross compiler
|
||||
# a) darwin toolchain targeting sh-elf: http://sourceforge.jp/projects/pf3gnuchains/downloads/50061/sh-pizzafactory-elf.pkg/
|
||||
# b) install pkg.
|
||||
# c) export PATH=$PATH:/pizza/bin
|
||||
# 2) cp cmake/Toolchain-OSX-GenericShElf.cmake.sample ~/Toolchain-OSX-GenericShElf.cmake
|
||||
# 3) tweak toolchain values as needed
|
||||
# 4) cd build
|
||||
# 5) cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-OSX-GenericShElf.cmake ..
|
||||
# 6) Run mirb on gdb
|
||||
# a) sh-pizzafactory-elf-gdb tools/mirb/mirb
|
||||
# b) target sim
|
||||
# c) load
|
||||
# d) run
|
||||
|
||||
# name of the target OS on which the built artifacts will run
|
||||
# and the toolchain prefix
|
||||
set(CMAKE_SYSTEM_NAME Generic)
|
||||
set(TOOLCHAIN_PREFIX sh-pizzafactory-elf)
|
||||
|
||||
# cross compilers to use for C and C++
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
||||
|
||||
# target environment(s) on the build host system
|
||||
# set 1st to dir with the cross compiler's C/C++ headers/libs
|
||||
# set 2nd to dir containing personal cross development headers/libs
|
||||
set(CMAKE_FIND_ROOT_PATH /pizza/${TOOLCHAIN_PREFIX})
|
||||
|
||||
# modify default behavior of FIND_XXX() commands to
|
||||
# search for headers/libs in the target environment and
|
||||
# search for programs in the build host environment
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
Reference in New Issue
Block a user