diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/mruby/array.h | 6 | ||||
| -rw-r--r-- | include/mruby/boxing_word.h | 12 | ||||
| -rw-r--r-- | include/mruby/dump.h | 5 | ||||
| -rw-r--r-- | include/mruby/hash.h | 2 | ||||
| -rw-r--r-- | include/mruby/irep.h | 3 | ||||
| -rw-r--r-- | include/mruby/value.h | 10 | ||||
| -rw-r--r-- | include/mruby/version.h | 8 |
7 files changed, 25 insertions, 21 deletions
diff --git a/include/mruby/array.h b/include/mruby/array.h index da811606a..16f78f773 100644 --- a/include/mruby/array.h +++ b/include/mruby/array.h @@ -21,7 +21,7 @@ typedef struct mrb_shared_array { mrb_value *ptr; } mrb_shared_array; -#if defined(MRB_32BIT) && defined(MRB_NO_BOXING) +#if defined(MRB_32BIT) && defined(MRB_NO_BOXING) && !defined(MRB_USE_FLOAT32) # define MRB_ARY_NO_EMBED # define MRB_ARY_EMBED_LEN_MAX 0 #else @@ -65,7 +65,7 @@ struct RArray { #define ARY_EMBED_PTR(a) ((a)->as.ary) #endif -#define ARY_LEN(a) (ARY_EMBED_P(a)?ARY_EMBED_LEN(a):(a)->as.heap.len) +#define ARY_LEN(a) (ARY_EMBED_P(a)?ARY_EMBED_LEN(a):(mrb_int)(a)->as.heap.len) #define ARY_PTR(a) (ARY_EMBED_P(a)?ARY_EMBED_PTR(a):(a)->as.heap.ptr) #define RARRAY_LEN(a) ARY_LEN(RARRAY(a)) #define RARRAY_PTR(a) ARY_PTR(RARRAY(a)) @@ -107,7 +107,7 @@ MRB_API mrb_value mrb_ary_new(mrb_state *mrb); * Array[value1, value2, ...] * * @param mrb The mruby state reference. - * @param size The numer of values. + * @param size The number of values. * @param vals The actual values. * @return The initialized array. */ diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h index 86a04368f..beab8681e 100644 --- a/include/mruby/boxing_word.h +++ b/include/mruby/boxing_word.h @@ -84,9 +84,9 @@ union mrb_value_ { struct { MRB_ENDIAN_LOHI( mrb_sym sym; - ,uint32_t sym_flag; + ,uint32_t flag; ) - }; + } sym; #endif struct RBasic *bp; #ifndef MRB_NO_FLOAT @@ -129,7 +129,7 @@ mrb_integer_func(mrb_value o) { } #define mrb_integer(o) mrb_integer_func(o) #ifdef MRB_64BIT -#define mrb_symbol(o) mrb_val_union(o).sym +#define mrb_symbol(o) mrb_val_union(o).sym.sym #else #define mrb_symbol(o) (mrb_sym)(((o).w) >> BOXWORD_SYMBOL_SHIFT) #endif @@ -138,7 +138,7 @@ mrb_integer_func(mrb_value o) { #define mrb_fixnum_p(o) BOXWORD_SHIFT_VALUE_P(o, FIXNUM) #define mrb_integer_p(o) (BOXWORD_SHIFT_VALUE_P(o, FIXNUM)||BOXWORD_OBJ_TYPE_P(o, INTEGER)) #ifdef MRB_64BIT -#define mrb_symbol_p(o) (mrb_val_union(o).sym_flag == BOXWORD_SYMBOL_FLAG) +#define mrb_symbol_p(o) (mrb_val_union(o).sym.flag == BOXWORD_SYMBOL_FLAG) #else #define mrb_symbol_p(o) BOXWORD_SHIFT_VALUE_P(o, SYMBOL) #endif @@ -182,8 +182,8 @@ mrb_integer_func(mrb_value o) { #ifdef MRB_64BIT #define SET_SYM_VALUE(r,v) do {\ union mrb_value_ mrb_value_union_variable;\ - mrb_value_union_variable.sym = v;\ - mrb_value_union_variable.sym_flag = BOXWORD_SYMBOL_FLAG;\ + mrb_value_union_variable.sym.sym = v;\ + mrb_value_union_variable.sym.flag = BOXWORD_SYMBOL_FLAG;\ (r) = mrb_value_union_variable.value;\ } while (0) #else diff --git a/include/mruby/dump.h b/include/mruby/dump.h index ed0c64b1a..3c48866d9 100644 --- a/include/mruby/dump.h +++ b/include/mruby/dump.h @@ -16,7 +16,10 @@ */ MRB_BEGIN_DECL -#define DUMP_DEBUG_INFO 1 +/* flags for mrb_dump_irep{,_binary,_cfunc,_cstruct} */ +#define MRB_DUMP_DEBUG_INFO 1 +#define MRB_DUMP_STATIC 2 +#define DUMP_DEBUG_INFO MRB_DUMP_DEBUG_INFO /* deprecated */ int mrb_dump_irep(mrb_state *mrb, const mrb_irep *irep, uint8_t flags, uint8_t **bin, size_t *bin_size); #ifndef MRB_NO_STDIO diff --git a/include/mruby/hash.h b/include/mruby/hash.h index a16df2f75..749ea3869 100644 --- a/include/mruby/hash.h +++ b/include/mruby/hash.h @@ -29,7 +29,7 @@ struct RHash { union { struct hash_entry *ea; struct hash_table *ht; - }; + } hsh; }; #define mrb_hash_ptr(v) ((struct RHash*)(mrb_ptr(v))) diff --git a/include/mruby/irep.h b/include/mruby/irep.h index 8d1648e13..d2ea202db 100644 --- a/include/mruby/irep.h +++ b/include/mruby/irep.h @@ -20,6 +20,7 @@ enum irep_pool_type { IREP_TT_SSTR = 2, /* string (static) */ IREP_TT_INT32 = 1, /* 32bit integer */ IREP_TT_INT64 = 3, /* 64bit integer */ + IREP_TT_BIGINT = 7, /* big integer (not yet supported) */ IREP_TT_FLOAT = 5, /* float (double/float) */ }; @@ -31,9 +32,7 @@ typedef struct mrb_pool_value { union { const char *str; int32_t i32; -#if defined(MRB_64BIT) || defined(MRB_INT64) int64_t i64; -#endif #ifndef MRB_NO_FLOAT mrb_float f; #endif diff --git a/include/mruby/value.h b/include/mruby/value.h index 293ef90a7..39c01509d 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -107,12 +107,12 @@ static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000; enum mrb_vtype { MRB_TT_FALSE = 0, MRB_TT_TRUE, - MRB_TT_FLOAT, - MRB_TT_INTEGER, MRB_TT_SYMBOL, MRB_TT_UNDEF, - MRB_TT_CPTR, MRB_TT_FREE, + MRB_TT_FLOAT, + MRB_TT_INTEGER, + MRB_TT_CPTR, MRB_TT_OBJECT, MRB_TT_CLASS, MRB_TT_MODULE, @@ -129,6 +129,8 @@ enum mrb_vtype { MRB_TT_FIBER, MRB_TT_ISTRUCT, MRB_TT_BREAK, + MRB_TT_COMPLEX, + MRB_TT_RATIONAL, MRB_TT_MAXDEFINE }; @@ -177,7 +179,7 @@ struct RCptr { #endif #ifndef mrb_immediate_p -#define mrb_immediate_p(o) (mrb_type(o) < MRB_TT_FREE) +#define mrb_immediate_p(o) (mrb_type(o) <= MRB_TT_CPTR) #endif #ifndef mrb_integer_p #define mrb_integer_p(o) (mrb_type(o) == MRB_TT_INTEGER) diff --git a/include/mruby/version.h b/include/mruby/version.h index 3385fce4e..185263f32 100644 --- a/include/mruby/version.h +++ b/include/mruby/version.h @@ -57,7 +57,7 @@ MRB_BEGIN_DECL /* * Patch level string. (optional) */ -#define MRUBY_PATCHLEVEL_STR "preview" +#define MRUBY_PATCHLEVEL_STR "" #ifndef MRUBY_PATCHLEVEL_STR # if MRUBY_PATCHLEVEL < 0 @@ -80,17 +80,17 @@ MRB_BEGIN_DECL /* * Release year. */ -#define MRUBY_RELEASE_YEAR 2020 +#define MRUBY_RELEASE_YEAR 2021 /* * Release month. */ -#define MRUBY_RELEASE_MONTH 10 +#define MRUBY_RELEASE_MONTH 3 /* * Release day. */ -#define MRUBY_RELEASE_DAY 16 +#define MRUBY_RELEASE_DAY 5 /* * Release date as a string. |
