summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authormirichi <[email protected]>2013-06-14 20:01:03 +0900
committermirichi <[email protected]>2013-06-14 20:01:03 +0900
commita5f63e486473595d67601851f00b6bb96b377a8d (patch)
tree8550bf598238104c6490d15ad2db20d4c103ea75 /include
parent4b2bdbe2cc0e3b1b0f6916bdc308933f17f74537 (diff)
parentdbc93621c94b9b2d2b437cde40d8efec7337a64d (diff)
downloadmruby-a5f63e486473595d67601851f00b6bb96b377a8d.tar.gz
mruby-a5f63e486473595d67601851f00b6bb96b377a8d.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'include')
-rw-r--r--include/mrbconf.h68
-rw-r--r--include/mruby.h4
-rw-r--r--include/mruby/value.h69
3 files changed, 72 insertions, 69 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index 0d65ae13a..57148d428 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -7,9 +7,6 @@
#ifndef MRUBYCONF_H
#define MRUBYCONF_H
-#include <stdint.h>
-#include <stddef.h>
-
/* configuration options: */
/* add -DMRB_USE_FLOAT to use float instead of double for floating point numbers */
//#define MRB_USE_FLOAT
@@ -67,49 +64,6 @@
/* end of configuration */
-#ifdef MRB_USE_FLOAT
- typedef float mrb_float;
-# define mrb_float_to_str(buf, i) sprintf(buf, "%.7e", i)
-# define str_to_mrb_float(buf) strtof(buf, NULL)
-#else
- typedef double mrb_float;
-# define mrb_float_to_str(buf, i) sprintf(buf, "%.16e", i)
-# define str_to_mrb_float(buf) strtod(buf, NULL)
-#endif
-
-#if defined(MRB_INT16) && defined(MRB_INT64)
-# error "You can't define MRB_INT16 and MRB_INT64 at the same time."
-#endif
-
-#if defined(MRB_INT64)
-# ifdef MRB_NAN_BOXING
-# error Cannot use NaN boxing when mrb_int is 64bit
-# else
- typedef int64_t mrb_int;
-# define MRB_INT_MIN INT64_MIN
-# define MRB_INT_MAX INT64_MAX
-# define PRIdMRB_INT PRId64
-# define PRIiMRB_INT PRIi64
-# define PRIoMRB_INT PRIo64
-# define PRIxMRB_INT PRIx64
-# define PRIXMRB_INT PRIX64
-# endif
-#elif defined(MRB_INT16)
- typedef int16_t mrb_int;
-# define MRB_INT_MIN INT16_MIN
-# define MRB_INT_MAX INT16_MAX
-#else
- typedef int32_t mrb_int;
-# define MRB_INT_MIN INT32_MIN
-# define MRB_INT_MAX INT32_MAX
-# define PRIdMRB_INT PRId32
-# define PRIiMRB_INT PRIi32
-# define PRIoMRB_INT PRIo32
-# define PRIxMRB_INT PRIx32
-# define PRIXMRB_INT PRIX32
-#endif
-typedef short mrb_sym;
-
/* define ENABLE_XXXX from DISABLE_XXX */
#ifndef DISABLE_STDIO
#define ENABLE_STDIO
@@ -118,28 +72,6 @@ typedef short mrb_sym;
#define DISABLE_DEBUG
#endif
-#ifdef _MSC_VER
-# define _ALLOW_KEYWORD_MACROS
-# include <float.h>
-# define inline __inline
-# define snprintf _snprintf
-# define isnan _isnan
-# define isinf(n) (!_finite(n) && !_isnan(n))
-# define strtoll _strtoi64
-# define PRId32 "I32d"
-# define PRIi32 "I32i"
-# define PRIo32 "I32o"
-# define PRIx32 "I32x"
-# define PRIX32 "I32X"
-# define PRId64 "I64d"
-# define PRIi64 "I64i"
-# define PRIo64 "I64o"
-# define PRIx64 "I64x"
-# define PRIX64 "I64X"
-#else
-# include <inttypes.h>
-#endif
-
#ifdef ENABLE_STDIO
# include <stdio.h>
#endif
diff --git a/include/mruby.h b/include/mruby.h
index ce2fa79ae..33a15de0e 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -32,8 +32,10 @@
extern "C" {
#endif
-#include "mrbconf.h"
+#include <stdint.h>
+#include <stddef.h>
+#include "mrbconf.h"
#include "mruby/value.h"
typedef uint32_t mrb_code;
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 86f51eae2..06241ec76 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -7,6 +7,71 @@
#ifndef MRUBY_VALUE_H
#define MRUBY_VALUE_H
+#ifdef MRB_USE_FLOAT
+ typedef float mrb_float;
+# define mrb_float_to_str(buf, i) sprintf(buf, "%.7e", i)
+# define str_to_mrb_float(buf) strtof(buf, NULL)
+#else
+ typedef double mrb_float;
+# define mrb_float_to_str(buf, i) sprintf(buf, "%.16e", i)
+# define str_to_mrb_float(buf) strtod(buf, NULL)
+#endif
+
+#if defined(MRB_INT16) && defined(MRB_INT64)
+# error "You can't define MRB_INT16 and MRB_INT64 at the same time."
+#endif
+
+#if defined(MRB_INT64)
+# ifdef MRB_NAN_BOXING
+# error Cannot use NaN boxing when mrb_int is 64bit
+# else
+ typedef int64_t mrb_int;
+# define MRB_INT_MIN INT64_MIN
+# define MRB_INT_MAX INT64_MAX
+# define PRIdMRB_INT PRId64
+# define PRIiMRB_INT PRIi64
+# define PRIoMRB_INT PRIo64
+# define PRIxMRB_INT PRIx64
+# define PRIXMRB_INT PRIX64
+# endif
+#elif defined(MRB_INT16)
+ typedef int16_t mrb_int;
+# define MRB_INT_MIN INT16_MIN
+# define MRB_INT_MAX INT16_MAX
+#else
+ typedef int32_t mrb_int;
+# define MRB_INT_MIN INT32_MIN
+# define MRB_INT_MAX INT32_MAX
+# define PRIdMRB_INT PRId32
+# define PRIiMRB_INT PRIi32
+# define PRIoMRB_INT PRIo32
+# define PRIxMRB_INT PRIx32
+# define PRIXMRB_INT PRIX32
+#endif
+typedef short mrb_sym;
+
+#ifdef _MSC_VER
+# define _ALLOW_KEYWORD_MACROS
+# include <float.h>
+# define inline __inline
+# define snprintf _snprintf
+# define isnan _isnan
+# define isinf(n) (!_finite(n) && !_isnan(n))
+# define strtoll _strtoi64
+# define PRId32 "I32d"
+# define PRIi32 "I32i"
+# define PRIo32 "I32o"
+# define PRIx32 "I32x"
+# define PRIX32 "I32X"
+# define PRId64 "I64d"
+# define PRIi64 "I64i"
+# define PRIo64 "I64o"
+# define PRIx64 "I64x"
+# define PRIX64 "I64X"
+#else
+# include <inttypes.h>
+#endif
+
typedef uint8_t mrb_bool;
struct mrb_state;
@@ -16,6 +81,10 @@ struct mrb_state;
# error ---->> MRB_NAN_BOXING and MRB_USE_FLOAT conflict <<----
#endif
+#ifdef MRB_INT64
+# error ---->> MRB_NAN_BOXING and MRB_INT64 conflict <<----
+#endif
+
enum mrb_vtype {
MRB_TT_FALSE = 1, /* 1 */
MRB_TT_FREE, /* 2 */