Merge http://github.com/mruby/mruby/ into mruby-thread_-_normal

Conflicts:
	src/vm.c
		p->env->stack[0]
		mrb->c->stack[0]

 On branch mruby-thread_-_normal
 All conflicts fixed but you are still merging.
   (use "git commit" to conclude merge)

 Changes to be committed:

	modified:   .gitignore
	modified:   .travis.yml
	modified:   AUTHORS
	modified:   CONTRIBUTING.md
	modified:   INSTALL
	modified:   MITL
	modified:   Makefile
	modified:   README.md
	modified:   Rakefile
	new file:   bintest/mrbc.rb
	modified:   build_config.rb
	deleted:    doc/.gitkeep
	new file:   doc/api/README.md
	new file:   doc/api/mruby.h.md
	modified:   doc/compile/README.md
	new file:   doc/language/Core.md
	new file:   doc/language/README.md
	new file:   doc/language/generator.rb
	new file:   doc/language/mrbdoc/lib/mrbdoc_analyze.rb
	new file:   doc/language/mrbdoc/lib/mrbdoc_docu.rb
	new file:   doc/language/mrbdoc/mrbdoc.rb
	new file:   doc/mrbconf/README.md
	modified:   doc/mrbgems/README.md
	modified:   examples/mrbgems/c_and_ruby_extension_example/mrbgem.rake
	modified:   examples/mrbgems/c_and_ruby_extension_example/src/example.c
	modified:   examples/mrbgems/c_extension_example/mrbgem.rake
	modified:   examples/mrbgems/c_extension_example/src/example.c
	modified:   examples/mrbgems/ruby_extension_example/mrbgem.rake
	renamed:    examples/targets/ArduinoDue.rb -> examples/targets/build_config_ArduinoDue.rb
	new file:   examples/targets/build_config_IntelGalileo.rb
	renamed:    examples/targets/chipKitMax32.rb -> examples/targets/build_config_chipKITMax32.rb
	modified:   include/mrbconf.h
	modified:   include/mruby.h
	modified:   include/mruby/array.h
	new file:   include/mruby/boxing_nan.h
	new file:   include/mruby/boxing_no.h
	new file:   include/mruby/boxing_word.h
	modified:   include/mruby/class.h
	modified:   include/mruby/compile.h
	modified:   include/mruby/data.h
	modified:   include/mruby/debug.h
	modified:   include/mruby/dump.h
	new file:   include/mruby/error.h
	modified:   include/mruby/gc.h
	modified:   include/mruby/irep.h
	modified:   include/mruby/khash.h
	modified:   include/mruby/numeric.h
	new file:   include/mruby/object.h
	renamed:    src/opcode.h -> include/mruby/opcode.h
	modified:   include/mruby/proc.h
	modified:   include/mruby/range.h
	new file:   include/mruby/re.h
	modified:   include/mruby/string.h
	modified:   include/mruby/value.h
	modified:   include/mruby/variable.h
	new file:   include/mruby/version.h
	modified:   minirake
	modified:   mrbgems/default.gembox
	modified:   mrbgems/full-core.gembox
	modified:   mrbgems/mruby-array-ext/mrbgem.rake
	modified:   mrbgems/mruby-array-ext/mrblib/array.rb
	modified:   mrbgems/mruby-array-ext/src/array.c
	modified:   mrbgems/mruby-array-ext/test/array.rb
	new file:   mrbgems/mruby-bin-mirb/bintest/mirb.rb
	modified:   mrbgems/mruby-bin-mirb/mrbgem.rake
	modified:   mrbgems/mruby-bin-mirb/tools/mirb/mirb.c
	new file:   mrbgems/mruby-bin-mruby-config/mrbgem.rake
	new file:   mrbgems/mruby-bin-mruby-config/mruby-config
	new file:   mrbgems/mruby-bin-mruby-config/mruby-config.bat
	new file:   mrbgems/mruby-bin-mruby/bintest/mruby.rb
	modified:   mrbgems/mruby-bin-mruby/mrbgem.rake
	modified:   mrbgems/mruby-bin-mruby/tools/mruby/mruby.c
	new file:   mrbgems/mruby-bin-strip/bintest/mruby-strip.rb
	new file:   mrbgems/mruby-bin-strip/mrbgem.rake
	new file:   mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c
	modified:   mrbgems/mruby-enum-ext/mrbgem.rake
	modified:   mrbgems/mruby-enum-ext/mrblib/enum.rb
	modified:   mrbgems/mruby-enum-ext/test/enum.rb
	new file:   mrbgems/mruby-enum-lazy/mrbgem.rake
	new file:   mrbgems/mruby-enum-lazy/mrblib/lazy.rb
	new file:   mrbgems/mruby-enum-lazy/test/lazy.rb
	new file:   mrbgems/mruby-enumerator/mrbgem.rake
	new file:   mrbgems/mruby-enumerator/mrblib/enumerator.rb
	new file:   mrbgems/mruby-enumerator/test/enumerator.rb
	modified:   mrbgems/mruby-eval/mrbgem.rake
	modified:   mrbgems/mruby-eval/src/eval.c
	new file:   mrbgems/mruby-eval/test/eval.rb
	modified:   mrbgems/mruby-exit/mrbgem.rake
	modified:   mrbgems/mruby-exit/src/mruby-exit.c
	modified:   mrbgems/mruby-fiber/mrbgem.rake
	modified:   mrbgems/mruby-fiber/src/fiber.c
	modified:   mrbgems/mruby-fiber/test/fiber.rb
	modified:   mrbgems/mruby-hash-ext/mrbgem.rake
	modified:   mrbgems/mruby-hash-ext/mrblib/hash.rb
	modified:   mrbgems/mruby-hash-ext/src/hash-ext.c
	modified:   mrbgems/mruby-hash-ext/test/hash.rb
	new file:   mrbgems/mruby-kernel-ext/mrbgem.rake
	new file:   mrbgems/mruby-kernel-ext/src/kernel.c
	new file:   mrbgems/mruby-kernel-ext/test/kernel.rb
	modified:   mrbgems/mruby-math/mrbgem.rake
	modified:   mrbgems/mruby-math/src/math.c
	modified:   mrbgems/mruby-numeric-ext/mrbgem.rake
	new file:   mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb
	modified:   mrbgems/mruby-numeric-ext/test/numeric.rb
	modified:   mrbgems/mruby-object-ext/mrbgem.rake
	new file:   mrbgems/mruby-object-ext/mrblib/object.rb
	modified:   mrbgems/mruby-object-ext/src/object.c
	modified:   mrbgems/mruby-object-ext/test/object.rb
	modified:   mrbgems/mruby-objectspace/mrbgem.rake
	modified:   mrbgems/mruby-objectspace/src/mruby_objectspace.c
	modified:   mrbgems/mruby-objectspace/test/objectspace.rb
	modified:   mrbgems/mruby-print/mrbgem.rake
	modified:   mrbgems/mruby-print/src/print.c
	modified:   mrbgems/mruby-proc-ext/mrbgem.rake
	modified:   mrbgems/mruby-proc-ext/src/proc.c
	new file:   mrbgems/mruby-proc-ext/test/proc.c
	modified:   mrbgems/mruby-proc-ext/test/proc.rb
	modified:   mrbgems/mruby-random/mrbgem.rake
	modified:   mrbgems/mruby-random/src/mt19937ar.c
	modified:   mrbgems/mruby-random/src/mt19937ar.h
	modified:   mrbgems/mruby-random/src/random.c
	modified:   mrbgems/mruby-random/src/random.h
	modified:   mrbgems/mruby-random/test/random.rb
	modified:   mrbgems/mruby-range-ext/mrbgem.rake
	modified:   mrbgems/mruby-range-ext/src/range.c
	modified:   mrbgems/mruby-range-ext/test/range.rb
	modified:   mrbgems/mruby-sprintf/mrbgem.rake
	new file:   mrbgems/mruby-sprintf/mrblib/string.rb
	modified:   mrbgems/mruby-sprintf/src/sprintf.c
	modified:   mrbgems/mruby-sprintf/test/sprintf.rb
	modified:   mrbgems/mruby-string-ext/mrbgem.rake
	modified:   mrbgems/mruby-string-ext/mrblib/string.rb
	modified:   mrbgems/mruby-string-ext/src/string.c
	modified:   mrbgems/mruby-string-ext/test/string.rb
	modified:   mrbgems/mruby-string-utf8/mrbgem.rake
	modified:   mrbgems/mruby-string-utf8/src/string.c
	modified:   mrbgems/mruby-string-utf8/test/string.rb
	modified:   mrbgems/mruby-struct/mrbgem.rake
	modified:   mrbgems/mruby-struct/src/struct.c
	modified:   mrbgems/mruby-struct/test/struct.rb
	modified:   mrbgems/mruby-symbol-ext/mrbgem.rake
	modified:   mrbgems/mruby-symbol-ext/mrblib/symbol.rb
	modified:   mrbgems/mruby-symbol-ext/src/symbol.c
	modified:   mrbgems/mruby-symbol-ext/test/symbol.rb
	modified:   mrbgems/mruby-time/mrbgem.rake
	new file:   mrbgems/mruby-time/mrblib/time.rb
	modified:   mrbgems/mruby-time/src/time.c
	modified:   mrbgems/mruby-time/test/time.rb
	modified:   mrbgems/mruby-toplevel-ext/mrbgem.rake
	modified:   mrbgems/mruby-toplevel-ext/test/toplevel.rb
	modified:   mrblib/array.rb
	modified:   mrblib/compar.rb
	modified:   mrblib/enum.rb
	modified:   mrblib/error.rb
	modified:   mrblib/hash.rb
	modified:   mrblib/kernel.rb
	modified:   mrblib/mrblib.rake
	modified:   mrblib/numeric.rb
	deleted:    mrblib/print.rb
	modified:   mrblib/range.rb
	modified:   mrblib/string.rb
	modified:   src/array.c
	modified:   src/backtrace.c
	modified:   src/class.c
	modified:   src/codegen.c
	modified:   src/compar.c
	modified:   src/crc.c
	modified:   src/debug.c
	modified:   src/dump.c
	modified:   src/enum.c
	modified:   src/error.c
	modified:   src/error.h
	modified:   src/etc.c
	modified:   src/gc.c
	modified:   src/hash.c
	modified:   src/init.c
	modified:   src/kernel.c
	modified:   src/load.c
	new file:   src/mrb_throw.h
	modified:   src/mruby_core.rake
	modified:   src/node.h
	modified:   src/numeric.c
	modified:   src/object.c
	modified:   src/opcode.h
	modified:   src/parse.y
	modified:   src/pool.c
	modified:   src/print.c
	modified:   src/proc.c
	modified:   src/range.c
	deleted:    src/re.h
	modified:   src/state.c
	modified:   src/string.c
	modified:   src/symbol.c
	modified:   src/variable.c
	new file:   src/version.c
	modified:   src/vm.c
	modified:   tasks/libmruby.rake
	modified:   tasks/mrbgem_spec.rake
	modified:   tasks/mrbgems.rake
	modified:   tasks/mrbgems_test.rake
	modified:   tasks/mruby_build.rake
	modified:   tasks/mruby_build_commands.rake
	modified:   tasks/mruby_build_gem.rake
	modified:   tasks/ruby_ext.rake
	modified:   tasks/toolchains/clang.rake
	modified:   tasks/toolchains/gcc.rake
	modified:   tasks/toolchains/visualcpp.rake
	modified:   test/assert.rb
	new file:   test/bintest.rb
	modified:   test/driver.c
	modified:   test/init_mrbtest.c
	modified:   test/mrbtest.rake
	modified:   test/t/argumenterror.rb
	modified:   test/t/array.rb
	modified:   test/t/bs_block.rb
	modified:   test/t/class.rb
	modified:   test/t/comparable.rb
	modified:   test/t/enumerable.rb
	modified:   test/t/exception.rb
	modified:   test/t/false.rb
	modified:   test/t/float.rb
	modified:   test/t/hash.rb
	modified:   test/t/indexerror.rb
	modified:   test/t/integer.rb
	modified:   test/t/kernel.rb
	modified:   test/t/localjumperror.rb
	modified:   test/t/methods.rb
	modified:   test/t/module.rb
	modified:   test/t/nameerror.rb
	modified:   test/t/nil.rb
	modified:   test/t/nomethoderror.rb
	modified:   test/t/numeric.rb
	modified:   test/t/proc.rb
	modified:   test/t/range.rb
	modified:   test/t/rangeerror.rb
	modified:   test/t/standarderror.rb
	modified:   test/t/string.rb
	new file:   test/t/superclass.rb
	modified:   test/t/symbol.rb
	modified:   test/t/syntax.rb
	modified:   test/t/true.rb
	modified:   test/t/typeerror.rb
	new file:   test/t/unicode.rb
	modified:   tools/mrbc/mrbc.c
	modified:   travis_config.rb