From 1cc44cfd78e00879e983ffa320e16a2d99558067 Mon Sep 17 00:00:00 2001 From: skandhas Date: Fri, 9 Nov 2012 23:00:24 +0800 Subject: add Module#class_variables --- include/mruby/variable.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/mruby/variable.h b/include/mruby/variable.h index e805b4b2b..5126315c4 100644 --- a/include/mruby/variable.h +++ b/include/mruby/variable.h @@ -53,6 +53,7 @@ void mrb_gv_set(mrb_state *mrb, mrb_sym sym, mrb_value val); mrb_value mrb_obj_instance_variables(mrb_state*, mrb_value); mrb_value mrb_obj_iv_inspect(mrb_state*, struct RObject*); mrb_sym mrb_class_sym(mrb_state *mrb, struct RClass *c, struct RClass *outer); +mrb_value mrb_mod_class_variables(mrb_state*, mrb_value); /* GC functions */ void mrb_gc_mark_gv(mrb_state*); -- cgit v1.2.3 From 3eeef306184f202c106d56a13022afc54dad98cb Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Wed, 14 Nov 2012 14:42:21 +0900 Subject: make mrb_hash_keys() non static function --- include/mruby/hash.h | 1 + src/hash.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/mruby/hash.h b/include/mruby/hash.h index 7aab80f21..bb12962ca 100644 --- a/include/mruby/hash.h +++ b/include/mruby/hash.h @@ -28,6 +28,7 @@ mrb_value mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key); mrb_value mrb_hash_fetch(mrb_state *mrb, mrb_value hash, mrb_value key, mrb_value def); mrb_value mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key); mrb_value mrb_hash(mrb_state *mrb, mrb_value obj); +mrb_value mrb_hash_keys(mrb_state *mrb, mrb_value hash); /* RHASH_TBL allocates st_table if not available. */ #define RHASH(obj) ((struct RHash*)((obj).value.p)) diff --git a/src/hash.c b/src/hash.c index 229e61db7..c74ac837b 100644 --- a/src/hash.c +++ b/src/hash.c @@ -965,7 +965,7 @@ mrb_hash_to_hash(mrb_state *mrb, mrb_value hash) * */ -static mrb_value +mrb_value mrb_hash_keys(mrb_state *mrb, mrb_value hash) { khash_t(ht) *h = RHASH_TBL(hash); -- cgit v1.2.3 From 7a20ab0f959fac94f10b190ebbd385a51ce3d146 Mon Sep 17 00:00:00 2001 From: Yuichiro MASUI Date: Fri, 16 Nov 2012 19:12:57 +0900 Subject: define MRB_INT64 flag for mrb_int as 64bit --- include/mrbconf.h | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) (limited to 'include') diff --git a/include/mrbconf.h b/include/mrbconf.h index 841ef1823..20c9a59a8 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -13,6 +13,9 @@ /* add -DMRB_USE_FLOAT to use float instead of double for floating point numbers */ //#define MRB_USE_FLOAT +/* add -DMRB_INT64 to use 64bit integer for mrb_int */ +//#define MRB_INT64 + /* represent mrb_value in boxed double; conflict with MRB_USE_FLOAT */ //#define MRB_NAN_BOXING @@ -54,27 +57,39 @@ /* 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) (mrb_float)strtof((buf),NULL) + 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) + 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 #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); +# ifdef MRB_INT64 +# error Cannot use NaN boxing when mrb_int is 64bit +# else + 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) +# endif #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); +# ifdef MRB_INT64 + typedef int64_t mrb_int; +# define MRB_INT_MIN INT64_MIN +# define MRB_INT_MAX INT64_MAX +# define mrb_int_to_str(buf, i) sprintf((buf), "%ld", (i)) +# define str_to_mrb_int(buf) (mrb_int)strtoll((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 #endif typedef short mrb_sym; -- cgit v1.2.3