summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mrbconf.h13
-rw-r--r--include/mruby.h4
-rw-r--r--include/mruby/data.h2
-rw-r--r--include/mruby/dump.h1
-rw-r--r--include/mruby/irep.h10
-rw-r--r--include/mruby/numeric.h4
6 files changed, 24 insertions, 10 deletions
diff --git a/include/mrbconf.h b/include/mrbconf.h
index d7ccb261d..841ef1823 100644
--- a/include/mrbconf.h
+++ b/include/mrbconf.h
@@ -55,15 +55,26 @@
#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) (mrb_float)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) (mrb_float)strtod((buf),NULL)
#endif
-#define readfloat(p) (mrb_float)strtod((p),NULL)
#ifdef MRB_NAN_BOXING
typedef int32_t mrb_int;
+#define MRB_INT_MIN INT32_MIN
+#define MRB_INT_MAX INT32_MAX
+#define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
+#define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10);
#else
typedef int mrb_int;
+#define MRB_INT_MIN INT_MIN
+#define MRB_INT_MAX INT_MAX
+#define mrb_int_to_str(buf, i) sprintf((buf), "%d", (i))
+#define str_to_mrb_int(buf) (mrb_int)strtol((buf), NULL, 10);
#endif
typedef short mrb_sym;
diff --git a/include/mruby.h b/include/mruby.h
index b741e6444..94fa393ea 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -282,8 +282,8 @@ mrb_value mrb_exc_new(mrb_state *mrb, struct RClass *c, const char *ptr, long le
void mrb_exc_raise(mrb_state *mrb, mrb_value exc);
int mrb_block_given_p(void);
-void mrb_raise(mrb_state *mrb, struct RClass *c, const char *fmt, ...);
-void rb_raise(struct RClass *c, const char *fmt, ...);
+void mrb_raise(mrb_state *mrb, struct RClass *c, const char *msg);
+void mrb_raisef(mrb_state *mrb, struct RClass *c, const char *fmt, ...);
void mrb_warn(const char *fmt, ...);
void mrb_bug(const char *fmt, ...);
diff --git a/include/mruby/data.h b/include/mruby/data.h
index ad91e0044..b9bedb3f9 100644
--- a/include/mruby/data.h
+++ b/include/mruby/data.h
@@ -30,7 +30,7 @@ struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void *
#define Data_Make_Struct(mrb,klass,strct,type,sval) (\
sval = mrb_malloc(mrb, sizeof(strct)),\
- memset(sval, 0, sizeof(strct)),\
+ { static const strct zero = { 0 }; *sval = zero},\
Data_Wrap_Struct(mrb,klass,type,sval)\
)
diff --git a/include/mruby/dump.h b/include/mruby/dump.h
index 0826606e9..cad797275 100644
--- a/include/mruby/dump.h
+++ b/include/mruby/dump.h
@@ -41,6 +41,7 @@ int mrb_bdump_irep(mrb_state *mrb, int n, FILE *f,const char *initname);
#define MRB_DUMP_SIZE_OF_LONG 4
#define MRB_DUMP_SIZE_OF_INT 4
#define MRB_DUMP_SIZE_OF_SHORT 2
+#define MRB_DUMP_SIZE_OF_CHAR 1
/* null symbol length */
#define MRB_DUMP_NULL_SYM_LEN 0xFFFF
diff --git a/include/mruby/irep.h b/include/mruby/irep.h
index 0d8a05dbe..534590849 100644
--- a/include/mruby/irep.h
+++ b/include/mruby/irep.h
@@ -12,10 +12,10 @@ extern "C" {
#endif
typedef struct mrb_irep {
- int idx;
-
- int nlocals;
- int nregs;
+ int idx:16;
+ int nlocals:16;
+ int nregs:16;
+ int flags:8;
mrb_code *iseq;
mrb_value *pool;
@@ -28,6 +28,8 @@ typedef struct mrb_irep {
int ilen, plen, slen;
} mrb_irep;
+#define MRB_ISEQ_NO_FREE 1
+
void mrb_add_irep(mrb_state *mrb, int n);
#if defined(__cplusplus)
diff --git a/include/mruby/numeric.h b/include/mruby/numeric.h
index fed9ad39a..9a5ba449f 100644
--- a/include/mruby/numeric.h
+++ b/include/mruby/numeric.h
@@ -13,8 +13,8 @@ extern "C" {
#include <limits.h>
-#define POSFIXABLE(f) ((f) <= INT_MAX)
-#define NEGFIXABLE(f) ((f) >= INT_MIN)
+#define POSFIXABLE(f) ((f) <= MRB_INT_MAX)
+#define NEGFIXABLE(f) ((f) >= MRB_INT_MIN)
#define FIXABLE(f) (POSFIXABLE(f) && NEGFIXABLE(f))
mrb_value mrb_flt2big(mrb_state *mrb, mrb_float d);