]> Nishi Git Mirror - gwion.git/commitdiff
:art: no more m_bool
authorfennecdjay <fennecdjay@gmail.com>
Sat, 17 Feb 2024 15:30:24 +0000 (16:30 +0100)
committerfennecdjay <fennecdjay@gmail.com>
Sat, 17 Feb 2024 15:30:24 +0000 (16:30 +0100)
131 files changed:
ast
include/emit.h
include/env/envset.h
include/env/type.h
include/import.h
include/import/edef.h
include/import/internals.h
include/import/item.h
include/parse.h
include/partial.h
plug
scripts/embed.bash
src/compile.c
src/emit/emit.c
src/env/env_utils.c
src/env/envset.c
src/env/func.c
src/env/type.c
src/import/import_cdef.c
src/import/import_checker.c
src/import/import_enum.c
src/import/import_fdef.c
src/import/import_item.c
src/import/import_prim.c
src/import/import_type.c
src/import/import_udef.c
src/lib/array.c
src/lib/closure.c
src/lib/deep_equal.c
src/lib/dict.c
src/lib/engine.c
src/lib/enum.c
src/lib/event.c
src/lib/instr.c
src/lib/lib_class.c
src/lib/lib_gack.c
src/lib/locale.c
src/lib/modules.c
src/lib/object.c
src/lib/object_op.c
src/lib/opfunc.c
src/lib/prim.c
src/lib/prim_values.c
src/lib/ref.c
src/lib/shred.c
src/lib/sift.c
src/lib/string.c
src/lib/ugen.c
src/lib/union.c
src/lib/xork.c
src/parse/check.c
src/parse/check_traits.c
src/parse/func_resolve_tmpl.c
src/parse/operator.c
src/parse/partial.c
src/parse/scan0.c
src/parse/scan1.c
src/parse/scan2.c
src/parse/template.c
src/pass.c
src/plug.c
src/vm/gack.c
tests/driver/non_driver.c
tests/module/get_module.c
tests/plug/array.c
tests/plug/array_in_var_name.c
tests/plug/array_in_var_name_fail.c
tests/plug/array_incoherent_in_var_name.c
tests/plug/array_invalid_in_var_name.c
tests/plug/callback.c
tests/plug/class_template.c
tests/plug/class_template_fail.c
tests/plug/class_template_invalid.c
tests/plug/compile_file.c
tests/plug/coverage.c
tests/plug/deps.c
tests/plug/empty_union.c
tests/plug/end_class.c
tests/plug/enum.c
tests/plug/enum_fail.c
tests/plug/enum_fail2.c
tests/plug/enum_fail3.c
tests/plug/extend_array.c
tests/plug/fptr.c
tests/plug/fptr_tmpl.c
tests/plug/fptr_tmpl_fail.c
tests/plug/func_fail.c
tests/plug/func_fail2.c
tests/plug/func_fail3.c
tests/plug/func_fail4.c
tests/plug/func_subscript_not_empty.c
tests/plug/func_tmpl.c
tests/plug/func_tmpl_fail.c
tests/plug/func_too_many_arg.c
tests/plug/global_func.c
tests/plug/global_var.c
tests/plug/invalid_arg.c
tests/plug/invalid_array.c
tests/plug/invalid_func.c
tests/plug/invalid_names.c
tests/plug/invalid_names0.c
tests/plug/invalid_names1.c
tests/plug/invalid_names2.c
tests/plug/invalid_names3.c
tests/plug/invalid_type1.c
tests/plug/invalid_type2.c
tests/plug/invalid_type3.c
tests/plug/mk_type_array.c
tests/plug/not_importing.c
tests/plug/pass.c
tests/plug/specialid_emit.c
tests/plug/static_string.c
tests/plug/str2decl.c
tests/plug/str2list_fail.c
tests/plug/struct.c
tests/plug/template_arg.c
tests/plug/trig.c
tests/plug/typedef.c
tests/plug/typedef_fail.c
tests/plug/typedef_tmpl.c
tests/plug/ugen_connect.c
tests/plug/union.c
tests/plug/union_fail_exp.c
tests/plug/union_member.c
tests/plug/union_name.c
tests/plug/union_tmpl.c
tests/plug/union_tmpl_fail.c
tests/plug/union_tmpl_fail2.c
tests/plug/union_tmpl_fail3.c
tests/plug/vm_remove.c
util

diff --git a/ast b/ast
index f8ed98c97d7b938bb3d116e9428e9b52a3e76450..1292b905b96915cdce6627bcfce3490f415c37fa 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit f8ed98c97d7b938bb3d116e9428e9b52a3e76450
+Subproject commit 1292b905b96915cdce6627bcfce3490f415c37fa
index 12d60c01f13610cd4e8657f375f49bfa0a93312a..8be173901d1d910a6819e520419539f2c8e76866 100644 (file)
@@ -82,12 +82,12 @@ ANN void* emit_localx(const Emitter emit, const Type t);
 ANN m_uint emit_local_exp(const Emitter emit, Exp*);
 ANN bool emit_exp_spork(const Emitter, const Exp_Unary *);
 
-ANN void emit_object_addref(const Emitter emit, const m_int size,
+ANN void emit_object_addref(const Emitter emit, const m_uint size,
                              const bool emit_var);
-ANN void emit_struct_addref(const Emitter emit, const Type t, const m_int size,
+ANN void emit_struct_addref(const Emitter emit, const Type t, const m_uint size,
                              const bool emit_var);
 ANN static inline void emit_compound_addref(const Emitter emit, const Type t,
-                                             const m_int  size,
+                                             const m_uint  size,
                                              const bool emit_var) {
   return !tflag(t, tflag_struct) ? emit_object_addref(emit, size, emit_var)
                                  : emit_struct_addref(emit, t, size, emit_var);
index 72fc4ebac9553776e67ce85a3cdf2abcee654a4b..7aec557bcef145f6e5bb8e157dffc02872350e75 100644 (file)
@@ -19,7 +19,7 @@ ANN static inline bool envset_pushv(struct EnvSet *es, const Value v) {
   es->_ctx         = es->env->context;
   es->_filename    = es->env->name;
   CHECK_B(envset_push(es, v->from->owner_class, v->from->owner));
-  return GW_OK;
+  return true;
 }
 ANN2(1) void envset_pop(struct EnvSet *, const Type);
 #endif
index a6e0b06bcd87b7588a7d0b2a760f46ecfb27aa7f..62582a2e50b3aa09a92ad25a61207a9c81d1e78e 100644 (file)
@@ -66,7 +66,7 @@ FLAG_FUNC(Type, t)
 ANN2(1, 2) ANEW Type new_type(MemPool, const m_str name, const Type);
 ANEW ANN Type type_copy(MemPool, const Type type);
 ANN Value     find_value(const Type, const Symbol);
-ANN m_bool    isa(const Type, const Type) __attribute__((pure));
+ANN bool      isa(const Type, const Type) __attribute__((pure));
 ANN bool      not_reserved(const Env, const Tag); // move me
 ANN Type      array_type(const Env, const Type, const m_uint, const loc_t);
 ANN Type      find_common_anc(const Type, const Type) __attribute__((pure));
index b77140180d5c2cbca8e4d9c1dfb442ff93c64bc3..31c68545da7e400d82f3ccdfefa36d5dc0a42ffd 100644 (file)
@@ -27,7 +27,7 @@ typedef struct Gwi_ *Gwi;
 #define OP_CHECK(a) ANN Type a(const Env env NUSED, void *data NUSED)
 #define OP_EMIT(a)  ANN bool a(const Emitter emit NUSED, void *data NUSED)
 #ifdef GWION_BUILTIN
-#define GWI_BB(a)                                                              \
+#define GWI_B(a)                                                              \
   {                                                                            \
     gwi_set_loc(gwi, __FILE__, __LINE__);                                      \
     (void)(a);                                                                 \
@@ -37,28 +37,19 @@ typedef struct Gwi_ *Gwi;
     gwi_set_loc(gwi, __FILE__, __LINE__);                                      \
     (void)(a);                                                                 \
   }
-#define GWI_OB(a)                                                              \
+#define GWI_B(a)                                                              \
   {                                                                            \
     gwi_set_loc(gwi, __FILE__, __LINE__);                                      \
     (void)(a);                                                                 \
   }
 #define GWION_IMPORT(a) ANN bool gwimport_##a(const Gwi gwi)
 #else
-#define GWI_BB(a)                                                              \
-  {                                                                            \
-    gwi_set_loc(gwi, (m_str)__FILE__, __LINE__);                               \
-    CHECK_B(a);                                                                \
-  }
 #define GWI_B(a)                                                               \
   {                                                                            \
     gwi_set_loc(gwi, (m_str)__FILE__, __LINE__);                               \
     CHECK_B(a);                                                                \
   }
-#define GWI_OB(a)                                                              \
-  {                                                                            \
-    gwi_set_loc(gwi, (m_str)__FILE__, __LINE__);                               \
-    CHECK_B(a);                                                                \
-  }
+
 #define GWION_IMPORT(a) ANN bool gwimport_##a(const Gwi gwi)
 #endif
 #define ALLOC_PTR(p, a, b, c)                                                  \
@@ -96,7 +87,7 @@ OP_EMIT(opem_new);
 ANN
 static inline M_Object new_object_str(const Gwion gwion, const m_str str) {
   loc_t loc = {};
-  DECL_OO(const Type, t, = str2type(gwion, str, loc));
+  DECL_O(const Type, t, = str2type(gwion, str, loc));
   return new_object(gwion->mp, t);
 }
 
index b458033b08c1276c8a5b51f3cf200258eeeef292..2d31e53c5b507c48ecf7f270f753142707870b05 100644 (file)
@@ -2,8 +2,9 @@
 #define __IMPORT_ENUM
 
 __attribute__ ((visibility ("default")))
-ANN m_int gwi_enum_ini(const Gwi gwi, const m_str type);
-ANN m_int gwi_enum_add(const Gwi gwi, const m_str name, const m_uint value);
-ANN Type  gwi_enum_end(const Gwi gwi);
-ANN void  ck_clean_edef(MemPool, ImportCK *);
+ANN bool gwi_enum_ini(const Gwi gwi, const m_str type);
+ANN bool gwi_enum_add(const Gwi gwi, const m_str name, const m_uint value);
+ANN bool gwi_enum_end(const Gwi gwi);
+
+ANN void ck_clean_edef(MemPool, ImportCK *);
 #endif
index 45bf1624c1a49124a711d77748ba24bcdaa21b42..83aa0c6ee12ea750af4581577680a7d61be5839d 100644 (file)
@@ -6,7 +6,7 @@
 #define GWI_ERR_B(a, ...)                                                      \
   {                                                                            \
     GWI_ERR((a), ##__VA_ARGS__);                                               \
-    return GW_ERROR;                                                           \
+    return false;                                                              \
   }
 #define GWI_ERR_O(a, ...)                                                      \
   {                                                                            \
@@ -29,7 +29,7 @@
 #define ENV_ERR_B(pos, a, ...)                                                 \
   {                                                                            \
     env_err(env, pos, (a), ##__VA_ARGS__);                                     \
-    return GW_ERROR;                                                           \
+    return false;                                                              \
   }
 #define ENV_ERR_O(pos, a, ...)                                                 \
   {                                                                            \
index 5b197dccaf6693fa0bc8be11505f61098bb1bd32..2c11ffb7886bc5f75bf27143a35c12a4d33443bf 100644 (file)
@@ -1,8 +1,8 @@
 #ifndef __IMPORT_ITEM
 #define __IMPORT_ITEM
 
-ANN m_int gwi_item_ini(const Gwi gwi, const m_str type, const m_str name);
-ANN2(1) m_int gwi_item_end(const Gwi gwi, const ae_flag flag, union value_data);
+ANN bool gwi_item_ini(const Gwi gwi, const m_str type, const m_str name);
+ANN2(1) bool gwi_item_end(const Gwi gwi, const ae_flag flag, union value_data);
 #define gwi_item_end(a, b, member, c)                                          \
   gwi_item_end(a, (ae_flag)(b), (union value_data) {.member = c})
 ANN void ck_clean_item(MemPool, ImportCK *);
index 96d3a0963c3beddc32d9ef7e3c97e0006337796e..3fc734a57c1d8ed4eb20d8c78ede9b953e85b7d7 100644 (file)
     (node)-> poison = true;                                                    \
   } while(false)
 
-#undef ERR_b
-#define ERR_b(a, b, ...)                                                       \
-  do {                                                                         \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  } while(false)
-
-
-#define ERR_OK_NODE(ok, a, b, c, ...)                                               \
+#define ERR_OK_NODE(ok, a, b, c, ...)                                          \
   do {                                                                         \
     env_err(env, (b), (c), ##__VA_ARGS__);                                     \
     POISON_NODE(ok, env, a);                                                   \
   } while(false)
 
-#define ERR_OK(ok, a, b, ...)                                                 \
+#define ERR_OK(ok, a, b, ...)                                                  \
   do {                                                                         \
     env_err(env, (a), (b), ##__VA_ARGS__);                                     \
     POISON(ok, env);                                                           \
   } while(false)
 
-#undef ERR_B
 #define ERR_B(a, b, ...)                                                       \
   do {                                                                         \
     env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return GW_ERROR;                                                           \
+    return false;                                                              \
   } while(false)
 
-#undef ERR_O
 #define ERR_O(a, b, ...)                                                       \
   do {                                                                         \
     env_err(env, (a), (b), ##__VA_ARGS__);                                     \
@@ -157,7 +147,7 @@ static inline bool exp_is_zero(Exp* exp) {
 ANN static inline bool not_upvalue(const Env env, const Value v) {
   if (unlikely(is_class(env->gwion, v->type))) return true;
   return GET_FLAG(v, global) || vflag(v, vflag_fglobal) ||
-      (v->from->owner_class && isa(v->from->owner_class, env->class_def) > 0) ||
+      (v->from->owner_class && isa(v->from->owner_class, env->class_def)) ||
       nspc_lookup_value1(env->curr, insert_symbol(v->name));
 }
 
index 0590a2a5c250a65fd45db965e72c8a29d3528398..0966a81ced8bad93c98ae6cf778de35fcd8ba1ce 100644 (file)
@@ -7,7 +7,7 @@ ANN void print_signature(const Func f);
 ANN static inline bool func_match_inner(const Env env, Exp* e,
                                         const Type t, const bool implicit,
                                         const bool specific) {
-  if (specific ? e->type == t : isa(e->type, t) > 0) // match
+  if (specific ? e->type == t : isa(e->type, t)) // match
     return true;
   return !implicit ? false : check_implicit(env, e, t);
 }
diff --git a/plug b/plug
index 82b13e3b9c04c292342461b481289f68d428e04e..402bf847df73f3bec3f3802984726e5d3b766557 160000 (submodule)
--- a/plug
+++ b/plug
@@ -1 +1 @@
-Subproject commit 82b13e3b9c04c292342461b481289f68d428e04e
+Subproject commit 402bf847df73f3bec3f3802984726e5d3b766557
index 63b17fdb0b3a27dcd70c493f459540d8d6481bbb..53b7461cb69b9530ad2c6380e0128b18f4b6c169 100644 (file)
@@ -36,7 +36,7 @@ has_func() {
 }
 plugin() {
   has_func "gwimport" "$1" "$2" && {
-    header "extern m_bool gwimport_${2}(const Gwi);"
+    header "extern bool gwimport_${2}(const Gwi);"
     echo "  plug->plugin = gwimport_${2};"
   }
 }
index bd3b6e9f3893a886efc9f09abcb3d65185c893f1..9fe42f75622af24b42624e5f65d68dc21309c73e 100644 (file)
@@ -115,7 +115,7 @@ ANN static inline bool passes(struct Gwion_ *gwion, struct Compiler *c) {
   for(uint32_t i = 0; i < mp_vector_len(c->values); i++) {
     const Value v = *mp_vector_at(c->values, Value, i);
     set_vflag(v, vflag_builtin);
-    if(isa(v->type, gwion->type[et_class]) > 0) {
+    if(isa(v->type, gwion->type[et_class])) {
       const Type t = (Type)v->d.ptr;
       type_addref(t);
       mk_class(gwion->env, t, (loc_t) {});
@@ -157,7 +157,7 @@ ANN static m_uint _compile(struct Gwion_ *gwion, struct Compiler *c) {
     gwion->emit->info->code = NULL;
     return c->shred->tick->xid;
   }
-  return GW_OK;
+  return true;
 }
 
 ANN static m_uint compile(struct Gwion_ *gwion, struct Compiler *c) {
index 39a46862a99b5584e11c5e5ef26011443063a54b..6c9ad64ca6fc033960e1271c6065ec91389f5d18 100644 (file)
@@ -180,7 +180,8 @@ ANN static bool emit_defers2(const Emitter emit) {
 
 ANN static m_int _frame_pop(const Emitter emit) {
   Frame *frame = emit->code->frame;
-  DECL_OB(const Local *, l, = (Local *)vector_pop(&frame->stack));
+  const Local *l = (Local *)vector_pop(&frame->stack);
+  if(!l)return -1;
   frame->curr_offset -= l->type->size;
   if (l->skip) return _frame_pop(emit);
   if (!l->is_compound) return _frame_pop(emit);
@@ -430,7 +431,7 @@ bool emit_instantiate_object(const Emitter emit, const Type type,
                                       is_ref));
     return true;
   } else if (!is_ref) {
-    if(!tflag(type, tflag_typedef) || isa(type, emit->gwion->type[et_closure]) > 0) {
+    if(!tflag(type, tflag_typedef) || isa(type, emit->gwion->type[et_closure])) {
       const Instr instr = emit_add_instr(emit, ObjectInstantiate);
       instr->m_val2     = (m_uint)type;
     } // maybe we should instantiate the first actual type
@@ -453,7 +454,7 @@ ANN static bool emit_symbol_builtin(const Emitter emit, const Symbol *data) {
     emit_dotstatic(emit, (m_uint)&v->d.ptr, size, emit_addr);
     // prevent invalid access to global variables
     if(!emit_addr &&
-       isa(v->type, emit->gwion->type[et_object]) > 0)
+       isa(v->type, emit->gwion->type[et_object]))
       emit_fast_except(emit, v->from, prim_pos(data));
   } else {
     const m_uint size = v->type->size;
@@ -502,7 +503,7 @@ ANN static bool _emit_symbol(const Emitter emit, const Symbol *data) {
   else
     emit_regpushbase(emit, v->from->offset, size, exp_getvar(prim_exp(data)));
   if (GET_FLAG(v, late) && !exp_getvar(prim_exp(data)) &&
-      isa(v->type, emit->gwion->type[et_object]) > 0)
+      isa(v->type, emit->gwion->type[et_object]))
     emit_fast_except(emit, v->from, prim_pos(data));
   return true;
 }
@@ -527,24 +528,24 @@ ANN static inline m_uint exp_size(Exp* e) {
   return type->size;
 }
 
-ANN void emit_object_addref(const Emitter emit, const m_int size,
+ANN void emit_object_addref(const Emitter emit, const m_uint size,
                              const bool emit_var) {
   const f_instr exec  = !emit_var ? RegAddRef : RegAddRefAddr;
   const Instr   instr = emit_add_instr(emit, exec);
   instr->m_val        = size;
 }
 
-ANN void emit_struct_addref(const Emitter emit, const Type t, const m_int size,
+ANN void emit_struct_addref(const Emitter emit, const Type t, const m_uint size,
                              const bool emit_var) {
   if(!tflag(t, tflag_release)) return;
   const Instr instr =
       emit_add_instr(emit, !emit_var ? StructRegAddRef : StructRegAddRefAddr);
   instr->m_val2  = (m_uint)t;
-  instr->m_val = !emit_var ? size : (m_int)-SZ_INT;
+  instr->m_val = !emit_var ? (m_int)size : (m_int)-SZ_INT;
 }
 
 ANN2(1)
-static void emit_exp_addref1(const Emitter emit, Exp* exp, m_int size) {
+static void emit_exp_addref1(const Emitter emit, Exp* exp, m_uint size) {
   const Type t = exp->cast_to ?: exp->type;
   if (tflag(t, tflag_compound))
     emit_compound_addref(emit, exp->type, size, exp_getvar(exp));
@@ -552,7 +553,7 @@ static void emit_exp_addref1(const Emitter emit, Exp* exp, m_int size) {
 
 /*ANN2(1)
 static void emit_exp_addref(const Emitter emit, Exp* exp,
-                            m_int size) {
+                            m_uint size) {
   do {
     emit_exp_addref1(emit, exp, size);
     size += exp_size(exp);
@@ -783,7 +784,7 @@ ANN static void emit_gack_type(const Emitter emit, Exp* e) {
   if (e->exp_type == ae_exp_cast ||
       (e->exp_type == ae_exp_primary && e->d.prim.prim_type == ae_prim_str))
      return;
-  const bool isobj = isa(e->type, emit->gwion->type[et_object]) > 0;
+  const bool isobj = isa(e->type, emit->gwion->type[et_object]);
   if (isobj  && (tflag(e->type, tflag_ref) || !GET_FLAG(e->type, final)))
     emit_add_instr(emit, GackType);
 }
@@ -944,11 +945,11 @@ ANN static bool emit_exp_decl_static(const Emitter emit, const Exp_Decl *decl,
                                        const bool     is_ref,
                                        const bool     emit_addr) {
   const Value v = var_decl->value;
-  if (isa(v->type, emit->gwion->type[et_object]) > 0 && !is_ref)
+  if (isa(v->type, emit->gwion->type[et_object]) && !is_ref)
     CHECK_B(decl_static(emit, decl, var_decl, 0));
   CHECK_B(emit_dot_static_data(emit, v, !struct_ctor(v) ? emit_addr : 1));
   if (tflag(v->type, tflag_struct)) CHECK_B(struct_finish(emit, decl));
-  if (isa(v->type, emit->gwion->type[et_object]) > 0 && !is_ref) {
+  if (isa(v->type, emit->gwion->type[et_object]) && !is_ref) {
     if(safe_tflag(emit->env->class_def, tflag_struct) && GET_FLAG(emit->env->class_def, global))
       emit_object_addref(emit, 0, emit_addr);
   }
@@ -1010,7 +1011,7 @@ ANN static bool emit_exp_decl_non_static(const Emitter   emit,
                                            const uint      emit_var) {
   const Value     v        = var_decl->value;
   const Type      type     = v->type;
-  const bool      is_obj   = isa(type, emit->gwion->type[et_object]) > 0;
+  const bool      is_obj   = isa(type, emit->gwion->type[et_object]);
   const bool emit_addr = (!is_obj || is_ref) ? emit_var : true;
   if (is_obj && !is_ref && !exp_self(decl)->ref) {
     if(!decl->args) CHECK_B(emit_instantiate_decl(emit, type, decl->var.td, is_ref));
@@ -1053,7 +1054,7 @@ ANN static bool emit_exp_decl_global(const Emitter emit, const Exp_Decl *decl,
                                        const uint is_ref, const bool emit_var) {
   const Value     v        = var_decl->value;
   const Type      type     = v->type;
-  const bool      is_obj   = isa(type, emit->gwion->type[et_object]) > 0;
+  const bool      is_obj   = isa(type, emit->gwion->type[et_object]);
   const bool emit_addr = (!is_obj || is_ref) ? emit_var : true;
   if (is_obj && !is_ref) {
     if(!decl->args) CHECK_B(emit_instantiate_decl(emit, type, decl->var.td, is_ref));
@@ -1126,7 +1127,7 @@ ANN static bool emit_decl(const Emitter emit, Exp_Decl *const decl) {
     }
     return false;
   }
-  if(isa(v->type, emit->gwion->type[et_object]) > 0 && GET_FLAG(v, late) && exp_getuse(exp_self(decl)))
+  if(isa(v->type, emit->gwion->type[et_object]) && GET_FLAG(v, late) && exp_getuse(exp_self(decl)))
     emit_add_instr(emit, GWOP_EXCEPT);
   return true;
 }
@@ -1141,7 +1142,7 @@ ANN /*static */ bool emit_exp_decl(const Emitter emit, Exp_Decl *const decl) {
       !global ? emit->env->scope->depth : emit_push_global(emit);
   const bool ret = emit_decl(emit, decl);
   if (global) emit_pop(emit, scope);
-  if(emit->status.in_return && GET_FLAG(decl->var.vd.value, late) && isa(t, emit->gwion->type[et_object]) > 0)
+  if(emit->status.in_return && GET_FLAG(decl->var.vd.value, late) && isa(t, emit->gwion->type[et_object]))
     emit_add_instr(emit, GWOP_EXCEPT);
   return ret;
 }
@@ -1628,7 +1629,7 @@ ANN bool emit_exp_call1(const Emitter emit, const Func f,
     else //if(is_new(f->def))//if(tflag(f->value_ref->type, tflag_ftmpl))
 {
 const Type t = f->value_ref->from->owner_class;
-if(t && (!emit->env->curr || isa(t, emit->env->class_def) < 0))
+if(t && (!emit->env->curr || !isa(t, emit->env->class_def)))
 //!is_new(f->def) || f->value_ref->from->owner_class->array_depth)
 //if(f->value_ref->from->owner_class->array_depth)
 CHECK_B(emit_ensure_func(emit, f));
@@ -1856,7 +1857,7 @@ ANN static bool emit_exp_if(const Emitter emit, const Exp_If *exp_if) {
   Instr instr;
   struct M_Vector_ v = {};
   const m_uint reg = emit_local(emit, emit->gwion->type[et_bool]);
-  DECL_OB(const Instr, op, = _flow(emit, exp_if->cond, &instr, true));
+  DECL_B(const Instr, op, = _flow(emit, exp_if->cond, &instr, true));
   if (exp_getvar(exp_self(exp_if))) {
     exp_setvar(e, 1);
     exp_setvar(exp_if->else_exp, 1);
@@ -1960,8 +1961,8 @@ ANN2(1) /*static */ bool emit_exp(const Emitter emit, /* const */ Exp* e) {
     }
     CHECK_B(emit_exp_func[exp->exp_type](emit, &exp->d));
     if (exp->cast_to) CHECK_B(emit_implicit_cast(emit, exp, exp->cast_to));
-    if (isa(e->type, emit->gwion->type[et_object]) > 0 &&
-        (e->cast_to ? isa(e->cast_to, emit->gwion->type[et_object]) > 0 : 1) &&
+    if (isa(e->type, emit->gwion->type[et_object]) &&
+        (e->cast_to ? isa(e->cast_to, emit->gwion->type[et_object]) : 1) &&
         e->exp_type == ae_exp_decl && GET_FLAG(e->d.exp_decl.var.td, late) &&
         exp_getuse(e) && !exp_getvar(e) &&
         GET_FLAG(e->d.exp_decl.var.vd.value, late))
@@ -1979,7 +1980,7 @@ ANN static bool emit_if(const Emitter emit, const Stmt_If stmt) {
   if (stmt->cond->exp_type == ae_exp_primary &&
       stmt->cond->d.prim.prim_type == ae_prim_num)
     return emit_if_const(emit, stmt);
-  DECL_OB(const Instr, op, = emit_flow(emit, stmt->cond));
+  DECL_B(const Instr, op, = emit_flow(emit, stmt->cond));
   CHECK_B(scoped_stmt(emit, stmt->if_body));
   const Instr op2 = emit_add_instr(emit, Goto);
   op->m_val       = emit_code_size(emit);
@@ -2035,10 +2036,10 @@ ANN static bool emit_stmt_return(const Emitter emit, const Stmt_Exp stmt) {
 }
 
 ANN static inline bool emit_jump_index(const Emitter emit, const Vector v,
-                                         const m_int n) {
+                                         const m_uint n) {
   vector_add(v, 0); // make room
   const m_uint sz  = vector_size(v);
-  m_int        idx = 1;
+  m_uint        idx = 1;
   for (m_uint i = sz; --i > 1;) {
     if (!vector_at(v, i) && ++idx == n) {
       m_uint *data = v->ptr + OFFSET + i;
@@ -2146,7 +2147,7 @@ ANN static bool _emit_stmt_for(const Emitter emit, const Stmt_For stmt,
                                  m_uint *action_index) {
   CHECK_B(emit_stmt(emit, stmt->c1));
   const m_uint index = emit_code_size(emit);
-  DECL_OB(const Instr, op, = emit_flow(emit, stmt->c2->d.stmt_exp.val));
+  DECL_B(const Instr, op, = emit_flow(emit, stmt->c2->d.stmt_exp.val));
   CHECK_B(scoped_stmt(emit, stmt->body));
   *action_index = emit_code_size(emit);
   if (stmt->c3) {
@@ -2179,7 +2180,7 @@ ANN static Instr each_op(const Emitter emit, const Looper *loop) {
 
 ANN static inline bool roll(const Emitter emit, Looper*const loop) {
   const Instr instr = loop->roll(emit, loop);
-//  DECL_OB(const Instr, instr, = each_op(emit, loop)); // maybe check in check.c
+//  DECL_B(const Instr, instr, = each_op(emit, loop)); // maybe check in check.c
   CHECK_B(scoped_stmt(emit, loop->stmt));
   instr->m_val = emit_code_size(emit) + 1; // pass after goto
   return true;
index 478063fb95366fad05a13b144667b7f9ca16f8a2..48e1dcf12a91ebb6c107aa5f30060435fbcd25cd 100644 (file)
@@ -9,20 +9,20 @@
 ANN bool env_access(const Env env, const ae_flag flag, const loc_t loc) {
   if (env->scope->depth) {
     if (GET(flag, ae_flag_global))
-      ERR_b(loc, _("`{G}global{0}` can only be used at %s scope."),
+      ERR_B(loc, _("`{G}global{0}` can only be used at %s scope."),
             GET(flag, ae_flag_global) && !env->class_def ? "file" : "class");
   }
   if ((GET(flag, ae_flag_static) || GET(flag, ae_flag_private) ||
        GET(flag, ae_flag_protect)) &&
       (!env->class_def || env->scope->depth))
-    ERR_b(loc, _("`{G}static/private/protect{0}` can only be used at class scope."));
+    ERR_B(loc, _("`{G}static/private/protect{0}` can only be used at class scope."));
   return true;
 }
 
 ANN bool env_storage(const Env env, ae_flag flag, const loc_t loc) {
   CHECK_B(env_access(env, flag, loc));
   if(env->class_def && GET(flag, ae_flag_global))
-    ERR_b(loc, _("`{G}global{0}` at class scope only valid for function pointers"));
+    ERR_B(loc, _("`{G}global{0}` at class scope only valid for function pointers"));
   return true;
 }
 #undef GET
@@ -55,7 +55,7 @@ ANN Type find_initial(const Env env, const Symbol xid) {
 #undef RETURN_TYPE
 
 ANN Type find_type(const Env env, Type_Decl *td) {
-  DECL_OO(Type, type, = find_initial(env, td->tag.sym));
+  DECL_O(Type, type, = find_initial(env, td->tag.sym));
   while ((td = td->next) && type && type->nspc) {
     const Nspc nspc  = type->nspc;
     if(!(type = find_in_parent(type, td->tag.sym)))
@@ -111,7 +111,7 @@ ANN bool not_reserved(const Env env, const Tag tag) {
   const Map map = &env->gwion->data->id;
   for (m_uint i = 0; i < map_size(map); i++) {
     if (tag.sym == (Symbol)VKEY(map, i))
-      ERR_b(tag.loc, _("%s is reserved."), s_name(tag.sym));
+      ERR_B(tag.loc, _("%s is reserved."), s_name(tag.sym));
   }
   return true;
 }
index f1c82e9a7292d50aab211aebd6c934756b8e41b1..994230b7d116571bbfd81abc1bc27121cf012eff 100644 (file)
@@ -78,7 +78,7 @@ ANN bool envset_run(struct EnvSet *es, const Type t) {
   es->env->context = t->info->value->from->ctx;
   es->env->name    = t->info->value->from->filename;
   const bool ret =
-      t->info->cdef && !(t->tflag & es->flag) ? es->func(es->data, t) : GW_OK;
+      t->info->cdef && !(t->tflag & es->flag) ? es->func(es->data, t) : true;
   envset_pop(es, owner_class);
   return ret;
 }
index 1df80f624d67175c410e0db21d3140b45a19178e..fba8b6b8e101e9530c3c3b9636cde2ad50901851 100644 (file)
@@ -30,8 +30,9 @@ Symbol func_symbol(const Env env, const m_str nspc, const m_str base,
   const size_t idx_len  = num_digit(i);
   const size_t len      = base_len + tmpl_len + nspc_len + idx_len + 2;
   char         name[len + 1];
-  CHECK_BO(sprintf(name, "%s%s%s%s@%" UINT_F "@%s", base, !tmpl ? "" : ":[",
-                   !tmpl ? "" : tmpl, !tmpl ? "" : "]", i, nspc));
+  if(sprintf(name, "%s%s%s%s@%" UINT_F "@%s", base, !tmpl ? "" : ":[",
+                   !tmpl ? "" : tmpl, !tmpl ? "" : "]", i, nspc) < 1)
+    return NULL;
   return insert_symbol(env->gwion->st, name);
 }
 
index 889c180a04f996c47a92987d270a83e8d545d6a6..a30ce4a769563c5cd61939d77cdb6c2322025162 100644 (file)
@@ -48,14 +48,14 @@ ANN Type type_copy(MemPool p, const Type type) {
   return a;
 }
 
-ANN m_bool isa(const restrict Type var, const restrict Type parent) {
-  return (var == parent)     ? GW_OK
+ANN bool isa(const restrict Type var, const restrict Type parent) {
+  return (var == parent)     ? true
          : var->info->parent ? isa(var->info->parent, parent)
-                             : GW_ERROR;
+                             : false;
 }
 
 ANN Type find_common_anc(const restrict Type lhs, const restrict Type rhs) {
-  return isa(lhs, rhs) > 0 ? rhs : isa(rhs, lhs) > 0 ? lhs : NULL;
+  return isa(lhs, rhs) ? rhs : isa(rhs, lhs) ? lhs : NULL;
 }
 
 #define describe_find(name, t)                                                 \
@@ -136,11 +136,11 @@ ANN m_uint get_depth(const Type type) {
 }
 
 ANN bool is_func(const struct Gwion_ *gwion, const Type t) {
-  return isa(actual_type(gwion, t), gwion->type[et_function]) > 0;
+  return isa(actual_type(gwion, t), gwion->type[et_function]);
 }
 
 ANN inline bool is_class(const struct Gwion_ *gwion, const Type t) {
-//  return isa(t, gwion->type[et_class]) > 0;
+//  return isa(t, gwion->type[et_class]);
   return t->info->parent ==  gwion->type[et_class];
 }
 
index 5176bdbc7a625eb5d55f44b8c4fc1d387ad94fd1..18c5726f6e622223603b4a3b13d60159968ab816 100644 (file)
@@ -26,7 +26,7 @@ ANN static void mk_dtor(MemPool p, const Type t, const m_uint d) {
 ANN2(1, 2) static void import_class_ini(const Env env, const Type t) {
   t->nspc         = new_nspc(env->gwion->mp, t->name);
   t->nspc->parent = env->curr;
-  if (isa(t, env->gwion->type[et_object]) > 0) inherit(t);
+  if (isa(t, env->gwion->type[et_object])) inherit(t);
   env_push_type(env, t);
 }
 
@@ -80,16 +80,16 @@ ANN2(1, 2)
 Type gwi_class_ini(const Gwi gwi, const m_str name, const m_str parent) {
   struct ImportCK ck = {.name = name};
   CHECK_O(check_typename_def(gwi, &ck));
-  DECL_OO(Type_Decl *, td, = gwi_str2td(gwi, parent ?: "Object"));
+  DECL_O(Type_Decl *, td, = gwi_str2td(gwi, parent ?: "Object"));
   Tmpl *tmpl = ck.sl ? new_tmpl(gwi->gwion->mp, ck.sl) : NULL;
   if (tmpl) CHECK_O(template_push_types(gwi->gwion->env, tmpl));
-  DECL_OO(const Type, base, = known_type(gwi->gwion->env, td));
+  DECL_O(const Type, base, = known_type(gwi->gwion->env, td));
   const TmplArg_List tl   = td->types;
   if (tflag(base, tflag_ntmpl)) td->types = NULL;
   const Type p = !td->types ? known_type(gwi->gwion->env, td) : NULL;
   td->types    = tl;
   if (tmpl) nspc_pop_type(gwi->gwion->mp, gwi->gwion->env->curr);
-  CHECK_OO(p);
+  CHECK_O(p);
   const Type t  = new_type(gwi->gwion->mp, s_name(ck.sym), p);
   t->info->cdef = new_class_def(gwi->gwion->mp, 0, MK_TAG(ck.sym, gwi->loc), td, NULL);
   t->info->cdef->base.tmpl = tmpl;
index 429f4639d44b0bd9d745546b7ccfc1c9b4df9314..6a4788739e8364935518740ff0d46ce16ad4426f 100644 (file)
@@ -92,7 +92,7 @@ ANN static bool _tmpl_list(const Gwion        gwion,
     mp_vector_add(gwion->mp, sl, Specialized, spec);
     return true;
   }
-  DECL_OO(const Symbol, sym, = __str2sym(gwion, tdc));
+  DECL_O(const Symbol, sym, = __str2sym(gwion, tdc));
   // TODO: handle traits?
   Specialized spec = { .tag = MK_TAG(sym, tdc->loc) };
   mp_vector_add(gwion->mp, sl, Specialized, spec);
@@ -239,7 +239,7 @@ ANN static Type_Decl *_str2td(const Gwion gwion, struct td_checker *tdc) {
     td->ref = ref;
     return td;
   }
-  DECL_OO(const Symbol, sym, = __str2sym(gwion, tdc));
+  DECL_O(const Symbol, sym, = __str2sym(gwion, tdc));
   TmplArg_List tl = td_tmpl(gwion, tdc);
   struct AC ac = {.str = tdc->str, .loc = tdc->loc};
   CHECK_O(ac_run(gwion, &ac));
@@ -266,7 +266,7 @@ ANN static Type_Decl *_str2td(const Gwion gwion, struct td_checker *tdc) {
 
 ANN Type_Decl *str2td(const Gwion gwion, const m_str str, const loc_t loc) {
   struct td_checker tdc = {.str = str, .loc = loc};
-  DECL_OO(Type_Decl *, td, = _str2td(gwion, &tdc));
+  DECL_O(Type_Decl *, td, = _str2td(gwion, &tdc));
   if(*tdc.str) {
     free_type_decl(gwion->mp, td);
     GWION_ERR_O(loc, "excedental character '%c' in '%s'", *tdc.str, str);
@@ -275,7 +275,7 @@ ANN Type_Decl *str2td(const Gwion gwion, const m_str str, const loc_t loc) {
 }
 
 ANN Type str2type(const Gwion gwion, const m_str str, const loc_t loc) {
-  DECL_OO(Type_Decl *, td, = str2td(gwion, str, loc));
+  DECL_O(Type_Decl *, td, = str2td(gwion, str, loc));
   const Type t = known_type(gwion->env, td);
   free_type_decl(gwion->mp, td);
   return t;
@@ -337,7 +337,7 @@ ANN static bool td_info_run(const Env env, struct td_info *info) {
       }
     }
   }
-  return GW_OK;
+  return true;
 }
 
 ANEW ANN m_str type2str(const Gwion gwion, const Type t,
index 616730339c7cbe38ccdedebb5b9ae62341a42ba2..10ae4a531a2f379a034142d76dc5bae76e526bf5 100644 (file)
 //! start an enum definition
 //! \arg the importer
 //! \arg string defining a primitive type
-ANN m_int gwi_enum_ini(const Gwi gwi, const m_str type) {
-  CHECK_b(ck_ini(gwi, ck_edef));
-  CHECK_OB((gwi->ck->xid = gwi_str2sym(gwi, type)));
+ANN bool gwi_enum_ini(const Gwi gwi, const m_str type) {
+  CHECK_B(ck_ini(gwi, ck_edef));
+  CHECK_B((gwi->ck->xid = gwi_str2sym(gwi, type)));
   gwi->ck->tmpl = new_mp_vector(gwi->gwion->mp, EnumValue, 0);
-  return GW_OK;
+  return true;
 }
 
 //! add an enum entry
 //! \arg the importer
 //! \arg name of the entry
-ANN m_int gwi_enum_add(const Gwi gwi, const m_str name, const m_uint i) {
+ANN bool gwi_enum_add(const Gwi gwi, const m_str name, const m_uint i) {
   CHECK_B(ck_ok(gwi, ck_edef));
-  DECL_OB(const Symbol, xid, = gwi_str2sym(gwi, name));
+  DECL_B(const Symbol, xid, = gwi_str2sym(gwi, name));
   const EnumValue ev = { .tag = MK_TAG(xid, gwi->loc), .gwint = { .num = i }, .set = true};
   mp_vector_add(gwi->gwion->mp, &gwi->ck->tmpl, EnumValue, ev);
-  return GW_OK;
+  return true;
 }
 
 //! finish enum import
 //! \arg the importer
-ANN Type gwi_enum_end(const Gwi gwi) {
-  CHECK_O(ck_ok(gwi, ck_edef));
-  if (!gwi->ck->tmpl->len) GWI_ERR_O("Enum is empty");
+ANN bool gwi_enum_end(const Gwi gwi) {
+  CHECK_B(ck_ok(gwi, ck_edef));
+  if (!gwi->ck->tmpl->len) GWI_ERR_B("Enum is empty");
   const Gwion    gwion = gwi->gwion;
   const Enum_Def edef =
       new_enum_def(gwion->mp, gwi->ck->tmpl, gwi->ck->xid, gwi->loc);
@@ -47,8 +47,7 @@ ANN Type gwi_enum_end(const Gwi gwi) {
   gwi->ck->tmpl    = NULL;
   const bool ret = traverse_enum_def(gwion->env, edef);
   if (gwi->gwion->data->cdoc) gwfmt_enum_def(gwi->gwfmt, edef);
-  const Type t = ret ? edef->type : NULL;
   free_enum_def(gwion->mp, edef);
   ck_end(gwi);
-  return t;
+  return ret;
 }
index 61c71fdf01495947da29bd63230455c88468aba5..dd90d5c253f0bf053de48ce899bab81423536527 100644 (file)
@@ -18,9 +18,9 @@
 ANN2(1, 2, 3)
 static bool dl_func_init(const Gwi gwi, const restrict m_str t,
                            const restrict m_str n) {
-  CHECK_b(ck_ini(gwi, ck_fdef));
+  CHECK_B(ck_ini(gwi, ck_fdef));
   gwi->ck->name = n;
-  CHECK_b(check_typename_def(gwi, gwi->ck));
+  CHECK_B(check_typename_def(gwi, gwi->ck));
   CHECK_B((gwi->ck->td = gwi_str2td(gwi, t)));
   gwi->ck->mpv = new_mp_vector(gwi->gwion->mp, Arg, 0);
   return true;
@@ -84,7 +84,7 @@ ANN bool gwi_func_valid(const Gwi gwi, ImportCK *ck) {
 }
 
 ANN bool gwi_func_end(const Gwi gwi, const f_xfun addr, const ae_flag flag) {
-  CHECK_b(ck_ok(gwi, ck_fdef));
+  CHECK_B(ck_ok(gwi, ck_fdef));
   gwi->ck->addr    = addr;
   gwi->ck->flag    = flag;
   const bool ret = gwi_func_valid(gwi, gwi->ck);
@@ -94,13 +94,13 @@ ANN bool gwi_func_end(const Gwi gwi, const f_xfun addr, const ae_flag flag) {
 
 ANN bool gwi_func_arg(const Gwi gwi, const restrict m_str t,
                        const restrict m_str n) {
-  CHECK_b(ck_ok(gwi, ck_fdef));
+  CHECK_B(ck_ok(gwi, ck_fdef));
   DECL_B(Type_Decl *, td, = gwi_str2td(gwi, t));
   struct Var_Decl_ var;
   if(gwi_str2var(gwi, &var, n)) {
     Arg arg = { .var = MK_VAR(td, var) };
     mp_vector_add(gwi->gwion->mp, &gwi->ck->mpv, Arg, arg);
-    return GW_OK;
+    return true;
   }
   free_type_decl(gwi->gwion->mp, td);
   return false;
@@ -124,7 +124,7 @@ ANN static bool section_fptr(const Gwi gwi, const Fptr_Def fdef) {
 
 ANN Type gwi_fptr_end(const Gwi gwi, const ae_flag flag) {
   CHECK_O(ck_ok(gwi, ck_fdef));
-  DECL_OO(const Fptr_Def, fptr, = import_fptr(gwi));
+  DECL_O(const Fptr_Def, fptr, = import_fptr(gwi));
   fptr->base->flag |= flag;
   if (gwi->gwion->data->cdoc) {
     gwfmt_indent(gwi->gwfmt);
@@ -134,7 +134,7 @@ ANN Type gwi_fptr_end(const Gwi gwi, const ae_flag flag) {
                  tflag_tmpl) /*&& !fptr->base->tmpl*/) {
     section_fptr(gwi, fptr);
     ck_end(gwi);
-    return (Type)GW_OK;
+    return (Type)true;
   }
   const bool ret = traverse_fptr_def(gwi->gwion->env, fptr);
 //  if (fptr->base->func) // is it needed ?
index 49098f1e756a628e4129caf954d4661e89f6ef92..0d315f25d0b90245b9b938119d09ba0972353878 100644 (file)
 #include "import.h"
 #include "gwi.h"
 
-ANN m_int gwi_item_ini(const Gwi gwi, const restrict m_str type,
+ANN bool gwi_item_ini(const Gwi gwi, const restrict m_str type,
                        const restrict m_str name) {
-  CHECK_b(ck_ini(gwi, ck_item));
-  if ((gwi->ck->exp = make_exp(gwi, type, name))) return GW_OK;
+  CHECK_B(ck_ini(gwi, ck_item));
+  if ((gwi->ck->exp = make_exp(gwi, type, name))) return true;
   GWI_ERR_B(_("  ...  during var import '%s.%s'."), gwi->gwion->env->name, name)
 }
 
-ANN static m_int gwi_item_tmpl(const Gwi gwi) {
+ANN static bool gwi_item_tmpl(const Gwi gwi) {
   Stmt_List slist = new_mp_vector(gwi->gwion->mp, Stmt, 1);
   mp_vector_set(slist, Stmt, 0, MK_STMT_EXP(gwi->loc, gwi->ck->exp));
   Section section = MK_SECTION(stmt, stmt_list, slist);
   gwi_body(gwi, &section);
   mp_free2(gwi->gwion->mp, sizeof(ImportCK), gwi->ck);
   gwi->ck = NULL;
-  return GW_OK;
+  return true;
 }
 
 #undef gwi_item_end
 ANN2(1)
-m_int gwi_item_end(const Gwi gwi, const ae_flag flag, union value_data addr) {
-  CHECK_b(ck_ok(gwi, ck_item));
+bool gwi_item_end(const Gwi gwi, const ae_flag flag, union value_data addr) {
+  CHECK_B(ck_ok(gwi, ck_item));
   const Env env                     = gwi->gwion->env;
   gwi->ck->exp->d.exp_decl.var.td->flag = flag;
   if (gwi->gwion->data->cdoc) {
@@ -41,15 +41,14 @@ m_int gwi_item_end(const Gwi gwi, const ae_flag flag, union value_data addr) {
   }
   if (env->class_def && tflag(env->class_def, tflag_tmpl))
     return gwi_item_tmpl(gwi);
-  CHECK_b(traverse_exp(env, gwi->ck->exp));
+  CHECK_B(traverse_exp(env, gwi->ck->exp));
   const Value value = gwi->ck->exp->d.exp_decl.var.vd.value;
   value->d          = addr;
   set_vflag(value, vflag_builtin);
   if (!env->class_def) SET_FLAG(value, global);
-  const m_uint offset = value->from->offset;
   free_exp(gwi->gwion->mp, gwi->ck->exp);
   ck_end(gwi);
-  return offset;
+  return true;
 }
 
 ANN void ck_clean_item(MemPool mp, ImportCK *ck) {
index 37b3f15c12fcf0a83cd9d207818f4c61eedf1e8a..6fcf24910e30ab6be58e288c13b72882c4e11a52 100644 (file)
@@ -146,7 +146,7 @@ static INSTR(bitset) {
 static OP_EMIT(opem_bitset) {
   Exp_Binary *bin = data;
   const Instr instr = emit_add_instr(emit, bitset);
-  const Type t = isa(bin->rhs->type, emit->gwion->type[et_int]) > 0
+  const Type t = isa(bin->rhs->type, emit->gwion->type[et_int])
      ? bin->lhs->type
      : bin->rhs->type;
   instr->m_val = t->actual_size;
@@ -159,7 +159,7 @@ static INSTR(bitcast) {
 
 static OP_EMIT(opem_bitcast) {
   Exp_Cast *cast = data;
-  const Type t = isa(cast->exp->type, emit->gwion->type[et_int]) > 0
+  const Type t = isa(cast->exp->type, emit->gwion->type[et_int])
      ? known_type(emit->env, cast->td)
      : cast->exp->type;
   const Instr instr = emit_add_instr(emit, bitcast);
index b304a710263885afc3440c530628d15951c73da2..730803552111687e49036bb44543a28511aa5b41 100644 (file)
@@ -38,7 +38,7 @@ Type gwi_mk_type(const Gwi gwi, const m_str name, const m_uint size,
     gwfmt_sc(gwi->gwfmt);
     gwfmt_nl(gwi->gwfmt);
   }
-  CHECK_OO(gwi_str2sym(gwi, name));
+  CHECK_O(gwi_str2sym(gwi, name));
   const Type parent = get_parent(gwi, parent_name);
   const Type t      = new_type(gwi->gwion->mp, name, parent);
   t->size           = size;
index 6c35de28d39b5a8f63845cce0b2e2f7d7f25dc4c..068f96908fd93011b7b7ee2d4ed5188ac854336d 100644 (file)
@@ -16,7 +16,7 @@
 
 // move me
 ANN Exp* make_exp(const Gwi gwi, const m_str type, const m_str name) {
-  DECL_OO(Type_Decl *, td, = gwi_str2td(gwi, type));
+  DECL_O(Type_Decl *, td, = gwi_str2td(gwi, type));
   struct Var_Decl_ vd;
   if(!gwi_str2var(gwi, &vd, name)) {
     free_type_decl(gwi->gwion->mp, td);
@@ -28,7 +28,7 @@ ANN Exp* make_exp(const Gwi gwi, const m_str type, const m_str name) {
 ANN bool gwi_union_ini(const Gwi gwi, const m_str name) {
   CHECK_B(ck_ini(gwi, ck_udef));
   gwi->ck->name = name;
-  CHECK_b(check_typename_def(gwi, gwi->ck));
+  CHECK_B(check_typename_def(gwi, gwi->ck));
   gwi->ck->mpv = new_mp_vector(gwi->gwion->mp, Variable, 0);
   return true;
 }
index 9118566212a710ca0084591e8bd3a82bc19fc784..88cc7eb570694028f25a0cd240f7f7232d23798c 100644 (file)
@@ -133,7 +133,7 @@ static MFUN(vm_vector_random) {
 #define ARRAY_OPCK(a, b, loc)                                    \
   const Type l = array_base(a->type);                            \
   const Type r = array_base(b->type);                            \
-  if (isa(r, l) < 0) ERR_N(loc, _("array types do not match."));
+  if (!isa(r, l)) ERR_N(loc, _("array types do not match."));
 
 static OP_CHECK(opck_array_at) {
   const Exp_Binary *bin = (Exp_Binary *)data;
@@ -260,7 +260,7 @@ static OP_CHECK(opck_array_cast) {
   const Type      r    = array_base(t);
   if (get_depth(cast->exp->type) != get_depth(t))
     return NULL;
-  if(isa(l, r) > 0) return l;
+  if(isa(l, r)) return l;
   Type parent = t;
   while(parent) {
     if (tflag(parent, tflag_cdef) && parent->info->cdef->base.ext && parent->info->cdef->base.ext->array) {
@@ -305,7 +305,7 @@ static OP_EMIT(opem_array_cast) {
   const Type l = array_base(cast->exp->type);
   const Type t = known_type(env, cast->td);
   const Type r = array_base(t);
-  if(isa(l, r) < 0) {
+  if(!isa(l, r)) {
     const m_uint depth = get_depth(t);
     const m_uint start = emit_code_size(emit);
     cast_start(emit, depth);
@@ -403,7 +403,7 @@ ANN static inline bool array_do(const Emitter emit, const Array_Sub array,
     access = emit_add_instr(emit, ArrayAccess);
     access->m_val      = (i+1) * SZ_INT - offset;
     access->udata.one  = offset;
-    if(i < get_depth(t) || isa(array_base(t), emit->gwion->type[et_object]) > 0) {
+    if(i < get_depth(t) || isa(array_base(t), emit->gwion->type[et_object])) {
       const Instr ex     = emit_add_instr(emit, GWOP_EXCEPT);
       ex->m_val          = -SZ_INT;
     }
@@ -873,7 +873,7 @@ static OP_CHECK(opck_array_implicit) {
   const struct Implicit *imp = (struct Implicit *)data;
   if (imp->t->array_depth != imp->e->type->array_depth)
     return env->gwion->type[et_error];
-  if (isa(array_base(imp->e->type), array_base(imp->t)) < 0)
+  if (!isa(array_base(imp->e->type), array_base(imp->t)))
     return env->gwion->type[et_error];
   return imp->t;
 }
@@ -888,8 +888,8 @@ static OP_EMIT(opem_array_each_init) {
 
 ANN static inline Type foreach_type(const Env env, Exp* exp) {
   const Type et = exp->type;
-  DECL_OO(Type, base, = typedef_base(et));
-  DECL_OO(const Type, t, = array_base_simple(base));
+  DECL_O(Type, base, = typedef_base(et));
+  DECL_O(const Type, t, = array_base_simple(base));
   if(!tflag(base, tflag_ref)) {
     const m_uint depth = base->array_depth - 1;
     return depth ? array_type(env, t, depth, exp->loc) : t;
@@ -1077,7 +1077,7 @@ GWION_IMPORT(array) {
    GWI_B(gwi_oper_end(gwi, "@array_init", NoOp))
 
   gwi_register_freearg(gwi, ArrayAlloc, freearg_array);
-  return GW_OK;
+  return true;
 }
 
 INSTR(ArrayStruct) {
@@ -1195,13 +1195,6 @@ ANN static bool last_is_zero(Exp* e) {
   return exp_is_zero(e);
 }
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
 ANN2(1,2) bool check_array_instance(const Env env, Type_Decl *td, Exp* args) {
   if (!last_is_zero(td->array->exp)) {
     if (!args)
index 89050278cfaa51d6c6262000dfe8860ca36e1301..de590c950667662e6eed4691252940447aa2e840 100644 (file)
@@ -186,7 +186,7 @@ ANN static bool fptr_tmpl_push(const Env env, struct FptrInfo *info) {
 static bool td_match(const Env env, Type_Decl *id[2]) {
   DECL_B(const Type, t0, = known_type(env, id[0]));
   DECL_B(const Type, t1, = known_type(env, id[1]));
-  if (isa(t0, t1) > 0) return true;
+  if (isa(t0, t1)) return true;
   return t1 == env->gwion->type[et_auto];
 }
 
@@ -234,7 +234,7 @@ ANN static bool fptr_check(const Env env, struct FptrInfo *info) {
   //  if(!info->lhs->def->base->tmpl != !info->rhs->def->base->tmpl)
   //    return false;
   if(!info->lhs)
-     ERR_b(info->exp->loc,
+     ERR_B(info->exp->loc,
           _("can't resolve operator"));
   return true;
 }
@@ -260,7 +260,7 @@ ANN static Type fptr_type(const Env env, struct FptrInfo *info) {
         info->lhs = v->type->info->func;
       }
     } else {
-      DECL_OO(const Type, t,
+      DECL_O(const Type, t,
               = nspc_lookup_type1(nspc, info->lhs->def->base->tag.sym));
       info->lhs = actual_type(env->gwion, t)->info->func;
     }
@@ -282,14 +282,14 @@ ANN static bool _check_lambda(const Env env, Exp_Lambda *l,
   Arg_List bases = fdef->base->args;
   Arg_List args = l->def->base->args;
   if (mp_vector_len(bases) != mp_vector_len(args))
-    ERR_b(exp_self(l)->loc, _("argument number does not match for lambda"));
+    ERR_B(exp_self(l)->loc, _("argument number does not match for lambda"));
 
   if(l->def->captures) {
     // here move to arguments
     for(uint32_t i = 0; i < l->def->captures->len; i++) {
       Capture *cap = mp_vector_at(l->def->captures, Capture, i);
       const Value v = nspc_lookup_value1(env->curr, cap->var.tag.sym);
-      if(!v) ERR_b(cap->var.tag.loc, _("unknown value in capture"));
+      if(!v) ERR_B(cap->var.tag.loc, _("unknown value in capture"));
       DECL_B(const Type, t, = upvalue_type(env, cap));
       cap->temp = new_value(env, t, cap->var.tag);
       cap->var.value = v;
@@ -371,7 +371,7 @@ ANN static bool fptr_do(const Env env, struct FptrInfo *info) {
   if(info->exp->type->info->func) {
     CHECK_B(fptr_check(env, info));
     if (!(info->exp->type = fptr_type(env, info)))
-      ERR_b(info->exp->loc, _("no match found"));
+      ERR_B(info->exp->loc, _("no match found"));
     return true;
   }
   Exp_Lambda *l = &info->exp->d.exp_lambda;
@@ -565,7 +565,7 @@ static OP_CHECK(opck_op_impl) {
                           .loc  = impl->e->loc};
   vector_add(&env->scope->effects, 0);
   DECL_ON(const Type, t, = op_check(env, &opi));
-  CHECK_BN(isa(t, func->def->base->ret_type)); // error message?
+  CHECK_ON(isa(t, func->def->base->ret_type)); // error message?
   MP_Vector *const eff = (MP_Vector*)vector_back(&env->scope->effects);
 //  if (eff && !check_effect_overload(eff, func))
 //    ERR_N(impl->loc, _("`{+Y}%s{0}` has effects not present in `{+G}%s{0}`\n"),
@@ -725,18 +725,18 @@ static GACK(gack_function) { INTERP_PRINTF("%s", t->name); }
 GWION_IMPORT(func) {
   gwidoc(gwi, "the base of all functions.");
   const Type t_function = gwi_mk_type(gwi, "function", SZ_INT, NULL);
-  GWI_BB(gwi_gack(gwi, t_function, gack_function))
-  GWI_BB(gwi_set_global_type(gwi, t_function, et_function))
+  GWI_B(gwi_gack(gwi, t_function, gack_function))
+  GWI_B(gwi_set_global_type(gwi, t_function, et_function))
 
   gwidoc(gwi, "the base of decayed operators.");
   const Type t_op = gwi_mk_type(gwi, "operator", SZ_INT, "function");
-  GWI_BB(gwi_set_global_type(gwi, t_op, et_op))
+  GWI_B(gwi_set_global_type(gwi, t_op, et_op))
 
   gwidoc(gwi, "the base of function pointers.");
   const Type t_closure = gwi_class_ini(gwi, "funptr", "Object");
   t_closure->nspc->offset = SZ_INT*3;
   gwi_class_xtor(gwi, fptr_ctor, fptr_dtor);
-  GWI_BB(gwi_set_global_type(gwi, t_closure, et_closure))
+  GWI_B(gwi_set_global_type(gwi, t_closure, et_closure))
   GWI_B(gwi_func_ini(gwi, "void", "default"));
   GWI_B(gwi_func_end(gwi, fptr_default, ae_flag_none));
   gwi_class_end(gwi);
@@ -778,5 +778,5 @@ GWION_IMPORT(func) {
 
   gwi_register_freearg(gwi, GTmpl, freearg_gtmpl);
   gwi_register_freearg(gwi, DotTmpl, freearg_dottmpl);
-  return GW_OK;
+  return true;
 }
index a794c25de8513dfb1828d97cf988c0323ed49f78..b60a682dcc9421e0cfd775228e3535a51c5df26c 100644 (file)
@@ -259,5 +259,5 @@ GWION_IMPORT(deep_equal) {
      GWI_B(gwi_oper_emi(gwi, opem_deep_equal))
      GWI_B(gwi_oper_end(gwi, "<>", NULL))
 
-  return GW_OK;
+  return true;
 }
index 3fc21a4681209383163631f409a28eeefc89b1bd..6f9ebd3b5fa330e61c43335a91b792596d338fb0 100644 (file)
@@ -290,13 +290,13 @@ static OP_CHECK(opck_dict_remove_toop) {
   Exp*       func  = call->func;
   Exp*       args  = call->args;
   e->exp_type         = ae_exp_binary;
-  CHECK_OO(check_exp(env, e->d.exp_binary.rhs = cpy_exp(env->gwion->mp, func->d.exp_dot.base)));
-  CHECK_OO(check_exp(env, e->d.exp_binary.lhs = args));
+  CHECK_O(check_exp(env, e->d.exp_binary.rhs = cpy_exp(env->gwion->mp, func->d.exp_dot.base)));
+  CHECK_O(check_exp(env, e->d.exp_binary.lhs = args));
   e->d.exp_binary.op = insert_symbol("~~");
   free_exp(env->gwion->mp, func);
   const Type t = e->d.exp_binary.rhs->type;
   HMapInfo *const hinfo = (HMapInfo*)t->nspc->class_data;
-  if(isa(args->type, hinfo->key) < 0 || args->next)
+  if(!isa(args->type, hinfo->key) || args->next)
     ERR_N(e->loc, "dict.remove must be called with one Key argument");
   return e->type = env->gwion->type[et_void];
 }
@@ -450,7 +450,7 @@ static OP_EMIT(opem_dict_access) {
   const bool ret = _opem_dict_access(emit, data);
   array->exp->next = enext;
   CHECK_B(ret);
-  return !enext ? GW_OK : emit_next_access(emit, info);
+  return !enext ? true : emit_next_access(emit, info);
 }
 
 static OP_CHECK(opck_dict_access) {
@@ -611,7 +611,7 @@ static OP_CHECK(opck_dict_scan) {
 }
 
 GWION_IMPORT(dict) {
-  DECL_OB(const Type, t_dict, = gwi_class_ini(gwi, "Dict:[Key,Val]", "Object"));
+  DECL_B(const Type, t_dict, = gwi_class_ini(gwi, "Dict:[Key,Val]", "Object"));
   gwi_class_xtor(gwi, dict_ctor, dict_dtor);
   t_dict->nspc->offset += sizeof(struct HMap);
   gwi->gwion->type[et_dict] = t_dict;
@@ -666,5 +666,5 @@ GWION_IMPORT(dict) {
   GWI_B(gwi_func_arg(gwi, "string",    "key"));
   GWI_B(gwi_func_end(gwi, mfun_string_h, ae_flag_none));
 
-  return GW_OK;
+  return true;
 }
index 1343145f67744576e1afe61577f0281d8189e018..eb400abae9ea43379fd2674c636a9df08ed0ee64 100644 (file)
@@ -49,50 +49,50 @@ ANN static bool import_core_libs(const Gwi gwi) {
   gwidoc(gwi, "one type to rule them all.");
   const Type t_class = gwi_mk_type(gwi, "Class", SZ_INT, NULL);
   set_tflag(t_class, tflag_infer);
-  GWI_BB(gwi_set_global_type(gwi, t_class, et_class))
-  GWI_BB(gwi_gack(gwi, t_class, gack_class))
+  GWI_B(gwi_set_global_type(gwi, t_class, et_class))
+  GWI_B(gwi_gack(gwi, t_class, gack_class))
 
   gwidoc(gwi, "this type is infered.");
   const Type t_auto = gwi_mk_type(gwi, "auto", SZ_INT, NULL);
   set_tflag(t_auto, tflag_infer);
-  GWI_BB(gwi_set_global_type(gwi, t_auto, et_auto))
+  GWI_B(gwi_set_global_type(gwi, t_auto, et_auto))
 
   gwidoc(gwi, "a void type.");
   const Type t_void = gwi_mk_type(gwi, "void", 0, NULL);
-  GWI_BB(gwi_gack(gwi, t_void, gack_void))
-  GWI_BB(gwi_set_global_type(gwi, t_void, et_void))
+  GWI_B(gwi_gack(gwi, t_void, gack_void))
+  GWI_B(gwi_set_global_type(gwi, t_void, et_void))
 
   gwidoc(gwi, "integer type.");
   const Type t_int = gwi_mk_type(gwi, "int", SZ_INT, NULL);
-  GWI_BB(gwi_gack(gwi, t_int, gack_int))
-  GWI_BB(gwi_set_global_type(gwi, t_int, et_int))
+  GWI_B(gwi_gack(gwi, t_int, gack_int))
+  GWI_B(gwi_set_global_type(gwi, t_int, et_int))
 
   gwidoc(gwi, "character type.");
   const Type t_char = gwi_mk_type(gwi, "char", SZ_INT, "int");
-  GWI_BB(gwi_gack(gwi, t_char, gack_char))
-  GWI_BB(gwi_set_global_type(gwi, t_char, et_char))
+  GWI_B(gwi_gack(gwi, t_char, gack_char))
+  GWI_B(gwi_set_global_type(gwi, t_char, et_char))
 
   gwidoc(gwi, "float type.");
   const Type t_float = gwi_mk_type(gwi, "float", SZ_FLOAT, NULL);
-  GWI_BB(gwi_gack(gwi, t_float, gack_float))
-  GWI_BB(gwi_set_global_type(gwi, t_float, et_float))
+  GWI_B(gwi_gack(gwi, t_float, gack_float))
+  GWI_B(gwi_set_global_type(gwi, t_float, et_float))
   set_tflag(t_float, tflag_float);
 
   gwidoc(gwi, "represent duration.");
   const Type t_dur = gwi_mk_type(gwi, "dur", SZ_FLOAT, NULL);
-  GWI_BB(gwi_gack(gwi, t_dur, gack_float))
-  GWI_BB(gwi_add_type(gwi, t_dur))
+  GWI_B(gwi_gack(gwi, t_dur, gack_float))
+  GWI_B(gwi_add_type(gwi, t_dur))
   set_tflag(t_dur, tflag_float);
 
   gwidoc(gwi, "represent time.");
   const Type t_time = gwi_mk_type(gwi, "time", SZ_FLOAT, NULL);
-  GWI_BB(gwi_gack(gwi, t_time, gack_float))
-  GWI_BB(gwi_add_type(gwi, t_time))
+  GWI_B(gwi_gack(gwi, t_time, gack_float))
+  GWI_B(gwi_add_type(gwi, t_time))
   set_tflag(t_time, tflag_float);
 
   gwidoc(gwi, "internal time for `{/}now{0}{-}`.");
   const Type t_now = gwi_mk_type(gwi, "@now", SZ_FLOAT, "time");
-  GWI_BB(gwi_add_type(gwi, t_now))
+  GWI_B(gwi_add_type(gwi, t_now))
   struct SpecialId_ spid = {.type = t_now, .exec = RegPushNow, .is_const = 1};
   gwi_specialid(gwi, "now", &spid);
 
@@ -105,32 +105,32 @@ ANN static bool import_core_libs(const Gwi gwi) {
 
   gwidoc(gwi, "internal base of all objects and structures.");
 
-  GWI_BB(gwimport_enum(gwi));
+  GWI_B(gwimport_enum(gwi));
 
   const Type t_compound = gwi_mk_type(gwi, "@Compound", SZ_INT, NULL);
-  GWI_BB(gwi_gack(gwi, t_compound, gack_compound))
-  GWI_BB(gwi_set_global_type(gwi, t_compound, et_compound))
+  GWI_B(gwi_gack(gwi, t_compound, gack_compound))
+  GWI_B(gwi_set_global_type(gwi, t_compound, et_compound))
 
-  GWI_BB(gwimport_object(gwi))
+  GWI_B(gwimport_object(gwi))
 
-  GWI_BB(gwimport_prim(gwi))
-  GWI_BB(gwimport_func(gwi))
-  GWI_BB(gwimport_object_op(gwi))
-  GWI_BB(gwimport_values(gwi))
-  GWI_BB(gwimport_union(gwi))
+  GWI_B(gwimport_prim(gwi))
+  GWI_B(gwimport_func(gwi))
+  GWI_B(gwimport_object_op(gwi))
+  GWI_B(gwimport_values(gwi))
+  GWI_B(gwimport_union(gwi))
 
-  GWI_BB(gwimport_array(gwi))
-  GWI_BB(gwimport_event(gwi))
-  GWI_BB(gwimport_ugen(gwi))
-  GWI_BB(gwimport_xork(gwi))
+  GWI_B(gwimport_array(gwi))
+  GWI_B(gwimport_event(gwi))
+  GWI_B(gwimport_ugen(gwi))
+  GWI_B(gwimport_xork(gwi))
    GWI_B(gwi_oper_ini(gwi, NULL, (m_str)OP_ANY_TYPE, NULL))
    GWI_B(gwi_oper_add(gwi, opck_new))
    GWI_B(gwi_oper_emi(gwi, opem_new))
    GWI_B(gwi_oper_end(gwi, "new", NULL))
-  GWI_BB(gwimport_ref(gwi))
-  GWI_BB(gwimport_string(gwi))
-  GWI_BB(gwimport_shred(gwi))
-  GWI_BB(gwimport_modules(gwi))
+  GWI_B(gwimport_ref(gwi))
+  GWI_B(gwimport_string(gwi))
+  GWI_B(gwimport_shred(gwi))
+  GWI_B(gwimport_modules(gwi))
 
   gwidoc(gwi, "allow member access.");
    GWI_B(gwi_oper_ini(gwi, "@Compound", (m_str)OP_ANY_TYPE, NULL))
@@ -144,19 +144,19 @@ ANN static bool import_core_libs(const Gwi gwi) {
    GWI_B(gwi_oper_emi(gwi, opem_object_dot))
    GWI_B(gwi_oper_end(gwi, ".", NULL))
 
-  GWI_BB(gwimport_class(gwi))
+  GWI_B(gwimport_class(gwi))
 
   gwidoc(gwi, "allow static access.");
    GWI_B(gwi_oper_ini(gwi, "Class", (m_str)OP_ANY_TYPE, NULL))
    GWI_B(gwi_oper_add(gwi, opck_object_dot))
    GWI_B(gwi_oper_emi(gwi, opem_object_dot))
    GWI_B(gwi_oper_end(gwi, ".", NULL))
-  GWI_BB(gwimport_deep_equal(gwi));
+  GWI_B(gwimport_deep_equal(gwi));
 
-  GWI_BB(gwimport_dict(gwi));
-  GWI_BB(gwimport_gack(gwi));
-  GWI_BB(gwimport_sift(gwi));
-  GWI_BB(gwimport_locale(gwi));
+  GWI_B(gwimport_dict(gwi));
+  GWI_B(gwimport_gack(gwi));
+  GWI_B(gwimport_sift(gwi));
+  GWI_B(gwimport_locale(gwi));
 
 
   // seemed need at a point to ease liking
index fd1a8383b22708821028599cc4d8983869ea4ec1..3c4410c35129b9247d1ecbfa9594fa4c3525827e 100644 (file)
@@ -27,5 +27,5 @@ GWION_IMPORT(enum) {
   const Type t_enum = gwi_mk_type(gwi, "enum", SZ_INT, "int");
   gwi_set_global_type(gwi, t_enum, et_enum);
   gwi_gack(gwi, t_enum, gack_enum);
-  return GW_OK;
+  return true;
 }
index 11483f60e960d7b071d6c25a78b8bfdc5d10b407..83df7b3e6c31614de2b281c4918438d907dbd761 100644 (file)
@@ -61,5 +61,5 @@ GWION_IMPORT(event) {
   GWI_B(gwi_class_end(gwi))
    GWI_B(gwi_oper_ini(gwi, "Event", "@now", "int"))
    GWI_B(gwi_oper_end(gwi, "=>", EventWait))
-  return GW_OK;
+  return true;
 }
index d06bcc741a91a5a444191a7072fcceb5ad01439a..5d1b9cb4467945f02b2dc24c03263452ef214813 100644 (file)
@@ -18,7 +18,7 @@ ANN static Func_Def traverse_tmpl(const Emitter emit, Func_Def fdef, Func_Def fb
   const Env env = emit->env;
   const Symbol   sym  = func_symbol(env, nspc->name, s_name(fdef->base->tag.sym),
                                  "template", fbase->vt_index);
-  DECL_OO(const Value, v, = nspc_lookup_value0(nspc, sym)
+  DECL_O(const Value, v, = nspc_lookup_value0(nspc, sym)
                                 ?: nspc_lookup_value0(nspc, fdef->base->tag.sym));
   const f_xfun xfun = v->d.func_ref->def->d.dl_func_ptr;
   if (vflag(v, vflag_builtin))
index fb1dbd5707176928be3a7d523ee5b7e7d1d161d6..94443a2b9628b8cebd153aaea168a1d43d8911be 100644 (file)
@@ -17,7 +17,7 @@
     POP_REG(shred, SZ_INT);                                                    \
     const Type l                     = *(Type *)(shred->reg - SZ_INT);         \
     const Type r                     = *(Type *)(shred->reg);                  \
-    *(m_uint *)(shred->reg - SZ_INT) = isa(arg0, arg1) > 0 __VA_ARGS__;        \
+    *(m_uint *)(shred->reg - SZ_INT) = isa(arg0, arg1) __VA_ARGS__;            \
   }
 mk_class_instr(ge, l, r) mk_class_instr(gt, l, r, &&l != r)
 mk_class_instr(le, r, l) mk_class_instr(lt, r, l, &&l != r)
@@ -48,7 +48,7 @@ static OP_EMIT(opem_implicit_class) {
 static OP_CHECK(opck_implicit_class) {
   struct Implicit *imp = (struct Implicit*)data;
   const Type t = actual_type(env->gwion, imp->e->type);
-  if(isa(t, env->gwion->type[et_enum]) > 0) return imp->e->type;
+  if(isa(t, env->gwion->type[et_enum])) return imp->e->type;
   return env->gwion->type[et_error];
 }
 */
@@ -79,5 +79,5 @@ GWION_IMPORT(class) {
    GWI_B(gwi_oper_emi(gwi, opem_implicit_class))
    GWI_B(gwi_oper_end(gwi, "@implicit", NULL))
 */
-  return GW_OK;
+  return true;
 }
index 83b68edec97fddd180c90a95a6ce8d280f11fb71..aa2d225e718c77c5377a3733dc20e9ba789a40a2 100644 (file)
@@ -42,8 +42,8 @@ GWION_IMPORT(gack) {
 
   gwidoc(gwi, "a type for *pretty print*.");
   const Type t_gack = gwi_mk_type(gwi, "@Gack", SZ_INT, NULL);
-  GWI_BB(gwi_gack(gwi, t_gack, gack_gack))
-  GWI_BB(gwi_set_global_type(gwi, t_gack, et_gack));
+  GWI_B(gwi_gack(gwi, t_gack, gack_gack))
+  GWI_B(gwi_set_global_type(gwi, t_gack, et_gack));
 
   gwidoc(gwi, "@Gack implicit cast");
    GWI_B(gwi_oper_ini(gwi, "@Gack", (m_str)OP_ANY_TYPE, NULL))
@@ -51,5 +51,5 @@ GWION_IMPORT(gack) {
    GWI_B(gwi_oper_emi(gwi, opem_gack_implicit))
    GWI_B(gwi_oper_end(gwi, "@implicit", NULL))
 
-  return GW_OK;
+  return true;
 }
index 08e5a152013346c05f1ed45f1f79fbff6b4305eb..f079c975b778be890a29c7e18dc13dd8c29a5cae 100644 (file)
@@ -47,5 +47,5 @@ GWION_IMPORT(locale) {
   GWI_B(gwi_func_ini(gwi, "float", "BasicLocale"));
   GWI_B(gwi_func_arg(gwi, "string", "str"));
   GWI_B(gwi_func_end(gwi, BasicLocale, ae_flag_none));
-  return GW_OK;
+  return true;
 }
index a97944faf6754539bc8e6503b7e2c423605afe27..b5792223f03ef64243f2d1dc7fa1598af1f85f2e 100644 (file)
@@ -35,7 +35,7 @@ static MFUN(gain_set_gain) {
 }
 
 static GWION_IMPORT(gain) {
-  GWI_OB(gwi_class_ini(gwi, "Gain", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "Gain", "UGen"))
   gwi_class_xtor(gwi, gain_ctor, basic_dtor);
   gwi_func_ini(gwi, "float", "gain");
   GWI_B(gwi_func_end(gwi, gain_get_gain, ae_flag_none))
@@ -67,7 +67,7 @@ static MFUN(impulse_set_next) {
 }
 
 static GWION_IMPORT(impulse) {
-  GWI_OB(gwi_class_ini(gwi, "Impulse", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "Impulse", "UGen"))
   gwi_class_xtor(gwi, impulse_ctor, basic_dtor);
   gwi_func_ini(gwi, "float", "next");
   GWI_B(gwi_func_end(gwi, impulse_get_next, ae_flag_none))
@@ -87,7 +87,7 @@ static CTOR(fullrect_ctor) {
 }
 
 static GWION_IMPORT(fullrect) {
-  GWI_OB(gwi_class_ini(gwi, "FullRect", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "FullRect", "UGen"))
   gwi_class_xtor(gwi, fullrect_ctor, basic_dtor);
   return gwi_class_end(gwi);
 }
@@ -107,7 +107,7 @@ static CTOR(halfrect_ctor) {
 }
 
 static GWION_IMPORT(halfrect) {
-  GWI_OB(gwi_class_ini(gwi, "HalfRect", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "HalfRect", "UGen"))
   gwi_class_xtor(gwi, halfrect_ctor, basic_dtor);
   return gwi_class_end(gwi);
 }
@@ -131,7 +131,7 @@ static MFUN(step_set_next) {
 }
 
 static GWION_IMPORT(step) {
-  GWI_OB(gwi_class_ini(gwi, "Step", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "Step", "UGen"))
   gwi_class_xtor(gwi, step_ctor, basic_dtor);
   gwi_func_ini(gwi, "float", "next");
   GWI_B(gwi_func_end(gwi, step_get_next, ae_flag_none))
@@ -156,7 +156,7 @@ static CTOR(zerox_ctor) {
 }
 
 static GWION_IMPORT(zerox) {
-  GWI_OB(gwi_class_ini(gwi, "ZeroX", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "ZeroX", "UGen"))
   gwi_class_xtor(gwi, zerox_ctor, basic_dtor);
   return gwi_class_end(gwi);
 }
@@ -208,14 +208,14 @@ static OP_CHECK(opck_usrugen) {
   if (!arg || arg->len > 1)
     ERR_N(exp_self(bin)->loc,
           _("Tick function take one and only one argument"));
-  if (isa(((Arg*)(arg->ptr))->type, env->gwion->type[et_float]) < 0)
+  if (!isa(((Arg*)(arg->ptr))->type, env->gwion->type[et_float]))
     ERR_N(exp_self(bin)->loc,
           _("Tick functions argument must be of type float"));
-  if (isa(bin->lhs->type->info->func->def->base->ret_type,
-          env->gwion->type[et_float]) < 0)
+  if (!isa(bin->lhs->type->info->func->def->base->ret_type,
+          env->gwion->type[et_float]))
     ERR_N(exp_self(bin)->loc, _("Tick function must return float"));
   if (bin->lhs->type->info->func->value_ref->from->owner_class)
-    CHECK_BN(isa(bin->lhs->type->info->func->value_ref->from->owner_class,
+    CHECK_ON(isa(bin->lhs->type->info->func->value_ref->from->owner_class,
                  bin->rhs->type));
   return bin->rhs->type;
 }
@@ -273,7 +273,7 @@ static OP_EMIT(opem_usrugen) {
 }
 
 static GWION_IMPORT(usrugen) {
-  GWI_OB(gwi_class_ini(gwi, "UsrUGen", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "UsrUGen", "UGen"))
   gwi_class_xtor(gwi, usrugen_ctor, usrugen_dtor);
   GWI_B(gwi_func_ini(gwi, "int", "default_tick"))
   GWI_B(gwi_func_end(gwi, default_tick, 0))
@@ -282,15 +282,15 @@ static GWION_IMPORT(usrugen) {
    GWI_B(gwi_oper_add(gwi, opck_usrugen))
    GWI_B(gwi_oper_emi(gwi, opem_usrugen))
    GWI_B(gwi_oper_end(gwi, "~=>", NULL))
-  return GW_OK;
+  return true;
 }
 
 GWION_IMPORT(modules) {
-  GWI_BB(gwimport_gain(gwi))
-  GWI_BB(gwimport_impulse(gwi))
-  GWI_BB(gwimport_fullrect(gwi))
-  GWI_BB(gwimport_halfrect(gwi))
-  GWI_BB(gwimport_step(gwi))
-  GWI_BB(gwimport_zerox(gwi))
+  GWI_B(gwimport_gain(gwi))
+  GWI_B(gwimport_impulse(gwi))
+  GWI_B(gwimport_fullrect(gwi))
+  GWI_B(gwimport_halfrect(gwi))
+  GWI_B(gwimport_step(gwi))
+  GWI_B(gwimport_zerox(gwi))
   return gwimport_usrugen(gwi);
 }
index 343aed5eb07323f1f41c8dc7589d5daa4ba55989..8bd413fb11add7f0c985630a92435c4f0120ac0f 100644 (file)
@@ -124,7 +124,7 @@ static ID_CHECK(opck_super) {
   if(!env->func || is_ctor(env->func->def))
     ERR_O(self->loc, "can't use 'super' outside of constructor");
   const Type parent = env->class_def->info->parent;
-  DECL_OO(const Value, v, = find_value(parent, insert_symbol("new")));
+  DECL_O(const Value, v, = find_value(parent, insert_symbol("new")));
   SET_FLAG(env->func, const);
   return v->type;
 }
@@ -133,7 +133,7 @@ static ID_EMIT(opem_super) {
   const Env env = emit->env;
   Exp* self = exp_self(prim);
   if(!self->is_call)
-    ERR_b(self->loc, "can only use 'super' as a function call");
+    ERR_B(self->loc, "can only use 'super' as a function call");
   emit_regpushmem(emit, 0, SZ_INT, false);
   emit_pushimm(emit, (m_uint)exp_self(prim)->type);
   return true;
@@ -148,5 +148,5 @@ GWION_IMPORT(object) {
   gwi_specialid(gwi, "this", &spid_this);
   struct SpecialId_ spid_super = {.ck = opck_super, .em = opem_super, .is_const = 1};
   gwi_specialid(gwi, "super", &spid_super);
-  return GW_OK;
+  return true;
 }
index 15aed3f79a5b50338bdebc053e117c58a0f59d5d..4c961f41dbd8bbd32407f6092591aba815aa8e1e 100644 (file)
@@ -35,7 +35,7 @@ static OP_CHECK(opck_object_at) {
     SET_FLAG(vd.value, late);
   }
   exp_setvar(bin->rhs, 1);
-  CHECK_BO(isa(bin->lhs->type, bin->rhs->type));
+  CHECK_O(isa(bin->lhs->type, bin->rhs->type));
   bin->rhs->ref = bin->lhs;
   return bin->rhs->type;
 }
@@ -78,8 +78,8 @@ static OP_EMIT(opem_object_at) {
 static OP_CHECK(opck_object_cast) {
   const Exp_Cast *cast = (Exp_Cast *)data;
   const Type      to   = known_type(env, cast->td);
-  if (isa(cast->exp->type, to) < 0) {
-    if (isa(to, cast->exp->type) > 0)
+  if (!isa(cast->exp->type, to)) {
+    if (isa(to, cast->exp->type))
       ERR_N(exp_self(cast)->loc, _("can't upcast '%s' to '%s'"),
             cast->exp->type->name, to->name);
     ERR_N(exp_self(cast)->loc, _("can't cast '%s' to '%s'"),
@@ -183,7 +183,7 @@ ANN static inline Value get_value(const Env env, const Exp_Dot *member,
 }
 
 ANN static bool member_access(const Env env, Exp* exp, const Value value) {
-  if (!env->class_def || isa(env->class_def, value->from->owner_class) < 0) {
+  if (!env->class_def || !isa(env->class_def, value->from->owner_class)) {
     if (GET_FLAG(value, private)) {
       gwerr_basic("invalid variable access", "is private", NULL, env->name,
                   exp->loc, 0);
@@ -209,7 +209,7 @@ OP_CHECK(opck_object_dot) {
     const Value v = nspc_lookup_value1(env->curr, member->xid);
     if(v) {
       if (self->is_call) {
-        if (is_func(env->gwion, v->type) && (!v->from->owner_class || isa(the_base, v->from->owner_class) > 0)) // is_callable needs type
+        if (is_func(env->gwion, v->type) && (!v->from->owner_class || isa(the_base, v->from->owner_class))) // is_callable needs type
           return v->type;
       }
     }
@@ -221,7 +221,7 @@ OP_CHECK(opck_object_dot) {
   CHECK_ON(not_from_owner_class(env, the_base, value, self->loc));
   CHECK_ON(member_access(env, self, value));
   if ((base_static && vflag(value, vflag_member)) ||
-      (value->from->owner_class != env->class_def && isa(value->from->owner_class, env->class_def) > 0))
+      (value->from->owner_class != env->class_def && isa(value->from->owner_class, env->class_def)))
     ERR_N(self->loc,
           _("cannot access member '%s.%s' without object instance..."),
           the_base->name, str);
@@ -264,7 +264,7 @@ OP_EMIT(opem_object_dot) {
     assert(GET_FLAG(value, static));
     emit_dot_static_import_data(emit, value, exp_getvar(exp_self(member)));
   }
-  if(isa(value->type, emit->gwion->type[et_object]) > 0 &&
+  if(isa(value->type, emit->gwion->type[et_object]) &&
      !exp_getvar(exp_self(member)) &&
     (GET_FLAG(value, static) || GET_FLAG(value, late)))
     emit_fast_except(emit, value->from, exp_self(member)->loc);
@@ -379,7 +379,7 @@ static OP_EMIT(opem_cond_object) {
 GWION_IMPORT(object_op) {
   const Type t_error         = gwi_mk_type(gwi, "@error", 0, NULL);
   gwi->gwion->type[et_error] = t_error;
-  GWI_BB(gwi_set_global_type(gwi, t_error, et_error))
+  GWI_B(gwi_set_global_type(gwi, t_error, et_error))
    GWI_B(gwi_oper_ini(gwi, "Object", "Object", NULL))
    GWI_B(gwi_oper_add(gwi, opck_object_at))
    GWI_B(gwi_oper_emi(gwi, opem_object_at))
@@ -403,5 +403,5 @@ GWION_IMPORT(object_op) {
    GWI_B(gwi_oper_ini(gwi, "@Compound", NULL, NULL))
    GWI_B(gwi_oper_add(gwi, opck_struct_scan))
    GWI_B(gwi_oper_end(gwi, "class", NULL))
-  return GW_OK;
+  return true;
 }
index f9dc385550fbdfddc79c4289548f6a5a95589e98..b6ce9ced949a050835795ff46e5af3100979ebb0 100644 (file)
@@ -14,7 +14,7 @@
 
 OP_CHECK(opck_basic_cast) {
   const Exp_Cast *cast = (Exp_Cast *)data;
-  return isa(cast->exp->type, exp_self(cast)->type) > 0
+  return isa(cast->exp->type, exp_self(cast)->type)
              ? exp_self(cast)->type
              : env->gwion->type[et_error];
 }
@@ -152,7 +152,7 @@ OP_CHECK(opck_new) {
      (!array || (array->exp && exp_is_zero(array->exp))))
     ERR_N(unary->ctor.td->tag.loc, _("can't use 'new' on abstract type '%s'\n"),
           t->name);
-  if (isa(t, env->gwion->type[et_object]) < 0)
+  if (!isa(t, env->gwion->type[et_object]))
     ERR_N(exp_self(unary)->loc, _("can't use 'new' on non-object types...\n"));
   return t;
 }
index cba312dc1cd07f8812c7dce2f2d39b6417fa683d..ebbe7a6d7e5ca4f05f80cf0db041a942a515860e 100644 (file)
@@ -129,7 +129,7 @@ GWION_IMPORT(int_op) {
   IMPORT_BINARY_INT(mul, *)
   IMPORT_BINARY_INT(div, /)
   IMPORT_BINARY_INT(mod, %)
-  return GW_OK;
+  return true;
 }
 
 static GWION_IMPORT(int_logical) {
@@ -172,7 +172,7 @@ static GWION_IMPORT(int_r) {
   CHECK_OP("&=>", rassign, r_sand)
   CHECK_OP("|=>", rassign, r_sor)
   CHECK_OP("^=>", rassign, r_sxor)
-  return GW_OK;
+  return true;
 }
 
 static INSTR(IntRange) {
@@ -243,7 +243,7 @@ static GWION_IMPORT(int_unary) {
    GWI_B(gwi_oper_end(gwi, "++", int_post_inc))
    GWI_B(gwi_oper_add(gwi, opck_post))
    GWI_B(gwi_oper_end(gwi, "--", int_post_dec))
-  return GW_OK;
+  return true;
 }
 static GACK(gack_bool) {
   //  gw_out("%s", *(m_uint*)VALUE ? "true" : "false");
@@ -261,9 +261,9 @@ static OP_CHECK(bool2float) {
 }
 
 static GWION_IMPORT(int_values) {
-  DECL_OB(const Type, t_bool, = gwi_mk_type(gwi, "bool", SZ_INT, "int"));
-  GWI_BB(gwi_set_global_type(gwi, t_bool, et_bool))
-  GWI_BB(gwi_gack(gwi, t_bool, gack_bool))
+  DECL_B(const Type, t_bool, = gwi_mk_type(gwi, "bool", SZ_INT, "int"));
+  GWI_B(gwi_set_global_type(gwi, t_bool, et_bool))
+  GWI_B(gwi_gack(gwi, t_bool, gack_bool))
   gwi_item_ini(gwi, "bool", "true");
   gwi_item_end(gwi, ae_flag_const, num, 1);
   gwi_item_ini(gwi, "bool", "false");
@@ -278,18 +278,18 @@ static GWION_IMPORT(int_values) {
   struct SpecialId_ spid = {
       .type = t_bool, .exec = RegPushMaybe, .is_const = 1};
   gwi_specialid(gwi, "maybe", &spid);
-  return GW_OK;
+  return true;
 }
 
 static GWION_IMPORT(int) {
-  GWI_BB(gwimport_int_values(gwi))
+  GWI_B(gwimport_int_values(gwi))
    GWI_B(gwi_oper_cond(gwi, "int", BranchEqInt, BranchNeqInt))
    GWI_B(gwi_oper_ini(gwi, "int", "int", "int"))
-  GWI_BB(gwimport_int_op(gwi))
-  GWI_BB(gwimport_int_logical(gwi))
-  GWI_BB(gwimport_int_r(gwi))
-  GWI_BB(gwimport_int_unary(gwi))
-  return GW_OK;
+  GWI_B(gwimport_int_op(gwi))
+  GWI_B(gwimport_int_logical(gwi))
+  GWI_B(gwimport_int_r(gwi))
+  GWI_B(gwimport_int_unary(gwi))
+  return true;
 }
 
 static OP_CHECK(opck_cast_f2i) {
@@ -393,7 +393,7 @@ static GWION_IMPORT(intfloat) {
    GWI_B(gwi_oper_end(gwi, "==", int_float_eq))
    GWI_B(gwi_oper_add(gwi, opck_int_float_neq))
    GWI_B(gwi_oper_end(gwi, "!=", int_float_neq))
-  return GW_OK;
+  return true;
 }
 
 #define BINARY_FLOAT_INT_FOLD(name, TYPE, OP, pre)                       \
@@ -455,7 +455,7 @@ static GWION_IMPORT(floatint) {
    GWI_B(gwi_oper_end(gwi, "<", float_int_lt))
    GWI_B(gwi_oper_add(gwi, opck_float_int_le))
    GWI_B(gwi_oper_end(gwi, "<=", float_int_le))
-  return GW_OK;
+  return true;
 }
 
 static GWION_IMPORT(dur) {
@@ -614,7 +614,7 @@ static GWION_IMPORT(float) {
   //   GWI_B(gwi_oper_add(gwi, opck_unary_meta2))
    GWI_B(gwi_oper_add(gwi, opck_float_not))
    GWI_B(gwi_oper_end(gwi, "!", float_not))
-  return GW_OK;
+  return true;
 }
 
 ANN static GWION_IMPORT(ux) {
@@ -625,15 +625,15 @@ ANN static GWION_IMPORT(ux) {
     const Symbol s = insert_symbol(c);
     if(!gwi_primitive(gwi, s_name(s), i, ae_flag_none)) return false;
   }
-  return GW_OK;
+  return true;
 }
 
 GWION_IMPORT(prim) {
-  GWI_BB(gwimport_int(gwi))
-  GWI_BB(gwimport_ux(gwi));
-  GWI_BB(gwimport_float(gwi))    // const folded
-  GWI_BB(gwimport_intfloat(gwi)) // const folded
-  GWI_BB(gwimport_floatint(gwi)) // const folded
-  GWI_BB(gwimport_dur(gwi))
+  GWI_B(gwimport_int(gwi))
+  GWI_B(gwimport_ux(gwi));
+  GWI_B(gwimport_float(gwi))    // const folded
+  GWI_B(gwimport_intfloat(gwi)) // const folded
+  GWI_B(gwimport_floatint(gwi)) // const folded
+  GWI_B(gwimport_dur(gwi))
   return gwimport_time(gwi);
 }
index c148fd255e2489a305304291ed9620b1b1c0aa14..8725799e68f04d20b6e0fca32aed070c221a7d0a 100644 (file)
@@ -37,5 +37,5 @@ GWION_IMPORT(values) {
   gwi_item_end(gwi, ae_flag_const, fnum, sr * 60 * 60);
   gwi_item_ini(gwi, "time", "t_zero");
   gwi_item_end(gwi, ae_flag_const, fnum, 0.0);
-  return GW_OK;
+  return true;
 }
index ebe952f93cfeffe07b40216a22eb837fe2db28b1..622931bf7e240a183b1ce357874f54390236ebd0 100644 (file)
@@ -47,7 +47,7 @@ static inline Type ref_base(Type t) {
 
 static OP_EMIT(opem_ref_implicit_similar) {
   const struct Implicit *imp = (struct Implicit *)data;
-  if(!tflag(imp->t, tflag_contract)) return GW_OK;
+  if(!tflag(imp->t, tflag_contract)) return true;
   const Env env = emit->env;
   const Type base = ref_base(imp->t);
   struct Op_Import opi    = {.op   = insert_symbol("@implicit"),
@@ -193,5 +193,5 @@ GWION_IMPORT(ref) {
    GWI_B(gwi_oper_ini(gwi, "Ref", NULL, NULL))
    GWI_B(gwi_oper_add(gwi, opck_ref_scan))
    GWI_B(gwi_oper_end(gwi, "class", NULL))
-  return GW_OK;
+  return true;
 }
index 3621ebb007ee143d5076edf48fefac49a0d922f4..7ab6d42b68408e1cc7c19449723bcf1f1b81b832 100644 (file)
 #include "gwi.h"
 #include "ugen.h"
 
-static m_int o_fork_thread, o_shred_cancel,
-    o_fork_done, o_fork_ev;
-
-#define FORK_THREAD(o)  *(THREAD_TYPE *)(o->data + o_fork_thread)
+#define SHRED_CANCEL(o)  *(m_int *)(o->data + SZ_INT)
+#define FORK_THREAD(o)  *(THREAD_TYPE *)(o->data + SZ_INT*2)
+#define FORK_DONE(o)  *(m_int *)(o->data + SZ_INT*3)
+#define FORK_EV(o)  *(M_Object *)(o->data + SZ_INT*4)
 
 VM_Shred new_shred_base(const VM_Shred shred, const VM_Code code) {
   const VM_Shred sh = new_vm_shred(shred->info->mp, code);
@@ -37,9 +37,8 @@ M_Object new_shred(const VM_Shred shred) {
 ANN static inline M_Object fork_object(const VM_Shred shred, const Type t) {
   const Gwion    gwion = shred->info->vm->gwion;
   const M_Object o     = new_object(gwion->mp, t);
-  *(M_Object *)(o->data + o_fork_ev) =
-      new_object(gwion->mp, gwion->type[et_event]);
-  vector_init(&EV_SHREDS(*(M_Object *)(o->data + o_fork_ev)));
+  FORK_EV(o) = new_object(gwion->mp, gwion->type[et_event]);
+  vector_init(&EV_SHREDS(FORK_EV(o)));
   return o;
 }
 
@@ -165,8 +164,8 @@ static void stop(const M_Object o) {
   gwt_lock(&vm->shreduler->mutex);
   gwt_lock(&ME(o)->mutex);
   vm->shreduler->bbq->is_running       = 0;
-  *(m_int *)(o->data + o_shred_cancel) = 1;
-  *(m_int *)(o->data + o_fork_done) = 1;
+  SHRED_CANCEL(o) = 1;
+  FORK_DONE(o) = 1;
   gwt_unlock(&ME(o)->mutex);
   gwt_unlock(&vm->shreduler->mutex);
 }
@@ -174,12 +173,12 @@ static void stop(const M_Object o) {
 static inline void join(const M_Object o) {
 //  if(!ME(o)) return;
 //  gwt_lock(&ME(o)->mutex);
-//  const bool done = !*(m_int *)(o->data + o_fork_done);
+//  const bool done = !FORK_DONE(o));
 //  gwt_unlock(&ME(o)->mutex);
-////  if (!*(m_int *)(o->data + o_fork_done)) {
+////  if (!FORK_DONE(o)) {
   if (FORK_THREAD(o)) {
 //  if (!done) {
-//    *(m_int *)(o->data + o_fork_done) = 1;
+//    FORK_DONE(o) = 1;
     THREAD_JOIN(FORK_THREAD(o));
     FORK_THREAD(o) = 0;
   }
@@ -188,7 +187,7 @@ static inline void join(const M_Object o) {
 static DTOR(fork_dtor) {
   VM *parent = ME(o)->info->vm->parent;
   gwt_lock(&ME(o)->mutex);
-  *(m_int *)(o->data + o_fork_done) = 1;
+  FORK_DONE(o) = 1;
   gwt_unlock(&ME(o)->mutex);
   stop(o);
   join(o);
@@ -205,23 +204,23 @@ static DTOR(fork_dtor) {
 }
 
 static MFUN(fork_join) {
-  if (*(m_int *)(o->data + o_fork_done)) return;
+  if (FORK_DONE(o)) return;
   if (!ME(o)->tick) return;
   shred->info->me->ref++;
-  vector_add(&EV_SHREDS(*(M_Object *)(o->data + o_fork_ev)), (vtype)shred);
+  vector_add(&EV_SHREDS(FORK_EV(o)), (vtype)shred);
   shreduler_remove(shred->tick->shreduler, shred, false);
 }
 
 static MFUN(shred_cancel) {
   if(!ME(o)->tick)return;
   gwt_lock(&ME(o)->mutex);
-  *(m_int *)(o->data + o_shred_cancel) = *(m_int *)MEM(SZ_INT);
+  SHRED_CANCEL(o) = *(m_int *)MEM(SZ_INT);
   gwt_unlock(&ME(o)->mutex);
 }
 
 static MFUN(shred_test_cancel) {
   gwt_lock(&ME(o)->mutex);
-  if (*(m_int *)(o->data + o_shred_cancel)) {
+  if (SHRED_CANCEL(o)) {
     gwt_unlock(&ME(o)->mutex);
     vm_shred_exit(ME(o));
   } else gwt_unlock(&ME(o)->mutex);
@@ -230,7 +229,7 @@ static MFUN(shred_test_cancel) {
 static MFUN(fork_test_cancel) {
   VM *parent = ME(o)->info->vm;
   gwt_lock(&parent->shreduler->mutex);
-  if (*(m_int *)(o->data + o_shred_cancel)) {
+  if (SHRED_CANCEL(o)) {
     gwt_unlock(&parent->shreduler->mutex);
     stop(o);
     join(o);
@@ -264,7 +263,7 @@ struct ThreadLauncher {
 
 static inline int fork_running(VM *vm, const M_Object o) {
   gwt_lock(&ME(o)->mutex);
-  const int cancel = *(m_int *)(o->data + o_shred_cancel);
+  const int cancel = SHRED_CANCEL(o);
   gwt_unlock(&ME(o)->mutex);
   if(cancel)return false;
   gwt_lock(&vm->shreduler->mutex);
@@ -288,14 +287,14 @@ static ANN THREAD_FUNC(fork_run) {
   gwion_end_child(ME(me), vm->gwion);
   vm_lock(vm);
   gwt_lock(&ME(me)->mutex);
-  if (!*(m_int *)(me->data + o_shred_cancel) &&
+  if (!SHRED_CANCEL(me) &&
       me->type_ref != vm->gwion->type[et_fork])
     memcpy(me->data + vm->gwion->type[et_fork]->nspc->offset, ME(me)->reg,
   ((Type)vector_front(&me->type_ref->info->tuple->types))->size);
-  *(m_int *)(me->data + o_fork_done) = 1;
+  FORK_DONE(me) = 1;
   gwt_unlock(&ME(me)->mutex);
-  if (!*(m_int *)(me->data + o_shred_cancel))
-    broadcast(*(M_Object *)(me->data + o_fork_ev));
+  if (!SHRED_CANCEL(me))
+    broadcast(FORK_EV(me));
   vm_unlock(vm);
   THREAD_RETURN(0);
 }
@@ -344,7 +343,7 @@ GWION_IMPORT(shred) {
   t_shred->nspc->offset += SZ_INT;
 
   gwi_item_ini(gwi, "int", "cancel");
-  GWI_BB((o_shred_cancel = gwi_item_end(gwi, ae_flag_const, num, 0)))
+  GWI_B(gwi_item_end(gwi, ae_flag_const, num, 0));
 
   gwi_func_ini(gwi, "void", "exit");
   GWI_B(gwi_func_end(gwi, gw_shred_exit, ae_flag_none))
@@ -416,13 +415,12 @@ GWION_IMPORT(shred) {
   const Type t_fork = gwi_class_ini(gwi, "Fork", "Shred");
   gwi_class_xtor(gwi, NULL, fork_dtor);
   gwi->gwion->type[et_fork] = t_fork;
-  o_fork_thread = t_fork->nspc->offset;
   t_fork->nspc->offset += sizeof(gwtthread_t*);
 
   gwi_item_ini(gwi, "int", "is_done");
-  GWI_BB((o_fork_done = gwi_item_end(gwi, ae_flag_const, num, 0)))
+  GWI_B(gwi_item_end(gwi, ae_flag_const, num, 0));
   gwi_item_ini(gwi, "Event", "ev");
-  GWI_BB((o_fork_ev = gwi_item_end(gwi, ae_flag_const, num, 0)))
+  GWI_B(gwi_item_end(gwi, ae_flag_const, num, 0));
   gwi_func_ini(gwi, "void", "join");
   GWI_B(gwi_func_end(gwi, fork_join, ae_flag_none))
   gwi_func_ini(gwi, "void", "test_cancel");
@@ -432,8 +430,8 @@ GWION_IMPORT(shred) {
 
   const Type t_typed = gwi_class_ini(gwi, "TypedFork:[A]", "Fork");
   gwi_item_ini(gwi, "A", "retval");
-  GWI_BB(gwi_item_end(gwi, ae_flag_const, num, 0))
+  GWI_B(gwi_item_end(gwi, ae_flag_const, num, 0))
   GWI_B(gwi_class_end(gwi))
   SET_FLAG(t_typed, abstract | ae_flag_final);
-  return GW_OK;
+  return true;
 }
index 0ed55fa41131d01306d3b4387f926c8f02e8ce8d..cd73de37bc9625453148cb444bc2ec291aa3efed 100644 (file)
@@ -100,5 +100,5 @@ GWION_IMPORT(sift) {
    GWI_B(gwi_oper_ini(gwi, "Sift", "funptr", "Sift"));
    GWI_B(gwi_oper_add(gwi, opck_sift));
    GWI_B(gwi_oper_end(gwi, "|>", NULL));
-  return GW_OK;
+  return true;
 }
index 07ec04e7f81799d10a32babfadc96be4868bf2f2..1ea69a3a42c9e6b4db68b16f998fe7962f7a8a0e 100644 (file)
@@ -477,7 +477,7 @@ GWION_IMPORT(string) {
   const Type t_string         = gwi_class_ini(gwi, "string", NULL);
   gwi->gwion->type[et_string] = t_string; // use func
   gwi_class_xtor(gwi, string_ctor, string_dtor);
-  GWI_BB(gwi_gack(gwi, t_string, gack_string))
+  GWI_B(gwi_gack(gwi, t_string, gack_string))
   t_string->nspc->offset += SZ_INT;
 
   gwi_func_ini(gwi, "int", "size");
@@ -598,5 +598,5 @@ GWION_IMPORT(string) {
   struct SpecialId_ line_spid = {
       .ck = check_linepp, .is_const = 1};
   gwi_specialid(gwi, "__line__", &line_spid);
-  return GW_OK;
+  return true;
 }
index b037e8deab2452011b29cb046240685b7b0fc946..4e170b65f28e6a70d3f33ba4848855d400984e9e 100644 (file)
@@ -393,7 +393,7 @@ static GWION_IMPORT(global_ugens) {
   struct ugen_importer imp_adc  = {vm, adc_tick, "adc", vm->bbq->si->in};
   (void)add_ugen(gwi, &imp_adc);
   SET_FLAG(gwi->gwion->type[et_ugen], abstract);
-  return GW_OK;
+  return true;
 }
 
 static OP_CHECK(opck_chuck_ugen) {
index d9c6a32ab7a8b6f50eb39f070ecb3fc29b344200..638202653e0d0809dc7e67d9e77e04b6f91210d8 100644 (file)
@@ -158,8 +158,8 @@ static OP_CHECK(opck_union_new) {
 
 ANN GWION_IMPORT(union) {
   const Type t_none = gwi_mk_type(gwi, "None", 0, NULL);
-  GWI_BB(gwi_set_global_type(gwi, t_none, et_none))
-  GWI_BB(gwi_gack(gwi, t_none, gack_none))
+  GWI_B(gwi_set_global_type(gwi, t_none, et_none))
+  GWI_B(gwi_gack(gwi, t_none, gack_none))
   gwi_add_type(gwi, t_none);
   struct SpecialId_ spid = {
       .type = gwi->gwion->type[et_none], .exec = NoOp, .is_const = 1};
@@ -174,8 +174,8 @@ ANN GWION_IMPORT(union) {
   //gwi_class_xtor(gwi, NULL, UnionDtor);
   gwi->gwion->type[et_union] = t_union;
 
-  GWI_BB(gwi_item_ini(gwi, "int", "index"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_const, num, 0))
+  GWI_B(gwi_item_ini(gwi, "int", "index"))
+  GWI_B(gwi_item_end(gwi, ae_flag_const, num, 0))
   /*
   GWI_B(gwi_func_ini(gwi, "void", "@ctor"))
   GWI_B(gwi_func_end(gwi, union_ctor, ae_flag_none))
@@ -206,5 +206,5 @@ ANN GWION_IMPORT(union) {
   GWI_B(gwi_union_add(gwi, "A", "val"))
   GWI_B(gwi_union_end(gwi, ae_flag_none))
 
-  return GW_OK;
+  return true;
 }
index 73bd514498a375a85acfa85e3309bfb8d92358f4..57281235587c63d9fdcae8d9e6c470d7905a27d3 100644 (file)
@@ -41,7 +41,7 @@ static OP_CHECK(opck_spork) {
       uint32_t offset = !env->class_def ? 0 : SZ_INT;
       for(uint32_t i = 0; i < unary->captures->len; i++) {
         Capture *const cap = mp_vector_at(unary->captures, Capture, i);
-        DECL_OO(const Type, t, = upvalue_type(env, cap));
+        DECL_O(const Type, t, = upvalue_type(env, cap));
         cap->temp = new_value(env, t, cap->var.tag);
         cap->temp->from->offset = offset;
         offset += cap->temp->type->size;
@@ -100,5 +100,5 @@ GWION_IMPORT(xork) {
    GWI_B(gwi_oper_end(gwi, "fork", NULL))
   gwi_register_freearg(gwi, SporkIni, freearg_xork);
   gwi_register_freearg(gwi, fast_except, clean_fast_except);
-  return GW_OK;
+  return true;
 }
index 6c8a296d5cf79a1380d94facbe4e1b4fffa315e8..c0d58fc983a6e836e7b3bf6dee5e9696578969ca 100644 (file)
 #include "spread.h"
 #include "array.h"
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
-
 ANN bool check_stmt(const Env env, Stmt*);
 ANN bool check_class_def(const Env env, const Class_Def class_def);
 
@@ -42,7 +34,7 @@ ANN static Type check_internal(const Env env, const Symbol sym, Exp* e,
 
 ANN bool check_implicit(const Env env, Exp* e, const Type t) {
   if (e->type == t) return true;
-  if (isa(e->type, t) > 0) return true;
+  if (isa(e->type, t)) return true;
   const Symbol sym = insert_symbol("@implicit");
   return !!(e->cast_to = check_internal(env, sym, e, t));
 }
@@ -60,7 +52,7 @@ ANN bool check_subscripts(Env env, const Array_Sub array,
     }
   } while (++depth && (e = e->next));
   if (depth != array->depth)
-    ERR_B(array->exp->loc, _("invalid array access expression."))
+    ERR_B(array->exp->loc, _("invalid array access expression."));
   return ok;
 }
 
@@ -166,7 +158,7 @@ ANN bool ensure_traverse(const Env env, const Type t) {
 ANN static inline bool inferable(const Env env, const Type t,
                                    const loc_t loc) {
   if (!tflag(t, tflag_infer)) return true;
-  ERR_B(loc, _("can't infer type."))
+  ERR_B(loc, _("can't infer type."));
 }
 
 ANN Type check_exp_decl(const Env env, Exp_Decl *const decl) {
@@ -198,7 +190,7 @@ ANN Type check_exp_decl(const Env env, Exp_Decl *const decl) {
     env_pop(env, scope);
     set_vflag(decl->var.vd.value, vflag_direct);
   }
-  env_weight(env, 1 + isa(decl->type, env->gwion->type[et_object]) > 0);
+  env_weight(env, 1 + isa(decl->type, env->gwion->type[et_object]));
   return ret ? decl->var.vd.value->type : NULL;
 }
 
@@ -245,8 +237,8 @@ ANN static bool check_range(const Env env, Range *range) {
   if (range->start) CHECK_B(check_exp(env, range->start));
   if (range->end) CHECK_B(check_exp(env, range->end));
   if (range->start && range->end) {
-    if (isa(range->end->type, range->start->type) < 0)
-      ERR_B(range->start->loc, _("range types do not match"))
+    if (!isa(range->end->type, range->start->type))
+      ERR_B(range->start->loc, _("range types do not match"));
   }
   return true;
 }
@@ -285,10 +277,10 @@ ANN static Type check_prim_dict(const Env env, Exp* *data) {
 
 ANN bool not_from_owner_class(const Env env, const Type t, const Value v,
                                 const loc_t loc) {
-  if (!v->from->owner_class || isa(t, v->from->owner_class) < 0) {
+  if (!v->from->owner_class || !isa(t, v->from->owner_class)) {
     if(!is_class(env->gwion, v->type))
       ERR_B(loc, _("'%s' from owner namespace '%s' used in '%s'."), v->name,
-            v->from->owner ? v->from->owner->name : "?", t->name)
+            v->from->owner ? v->from->owner->name : "?", t->name);
   }
   return true;
 }
@@ -308,10 +300,10 @@ set_tflag(value->from->owner_class, tflag_check);
 return value;
 }
 
-    if (!value->from->owner_class || isa(env->class_def, value->from->owner_class) > 0)
+    if (!value->from->owner_class || isa(env->class_def, value->from->owner_class))
       return value;
     if(env->class_def) {
-      if (isa(env->class_def, value->from->owner_class) > 0 || value == env->class_def->info->value)
+      if (isa(env->class_def, value->from->owner_class) || value == env->class_def->info->value)
         return value;
 
     }
@@ -604,7 +596,7 @@ static Func find_func_match_actual(const Env env, const Func f, Exp* exp,
         return find_func_match_actual(env, func->next, exp, implicit,
                                       specific);
       }
-      if (tflag(e->type, tflag_ref) && isa(e->type, arg->type) > 0) {
+      if (tflag(e->type, tflag_ref) && isa(e->type, arg->type)) {
         if(!e->cast_to)e->cast_to = arg->type;
       }
 
@@ -650,7 +642,7 @@ ANN Func find_func_match(const Env env, const Func up, Exp_Call *const call) {
   Func      func;
   Exp* exp = call->args;
   Exp* args =
-      (exp && isa(exp->type, env->gwion->type[et_void]) < 0) ? exp : NULL;
+      (exp && !isa(exp->type, env->gwion->type[et_void])) ? exp : NULL;
   if ((func = find_func_match_actual(env, up, args, false, true)) ||
       (func = find_func_match_actual(env, up, args, true, true)) ||
       (func = find_func_match_actual(env, up, args, false, true)) ||
@@ -711,7 +703,7 @@ static void function_alternative(const Env env, const Type t, Exp* args,
     return;
   gwerr_basic("Argument type mismatch", "call site",
               "valid alternatives:", env->name, loc, 0);
-  const bool is_closure = isa(t, env->gwion->type[et_closure]) < 0;
+  const bool is_closure = !isa(t, env->gwion->type[et_closure]);
   Func up = is_closure
           ?  t->info->func : closure_def(t)->base->func;
   do print_signature(up);
@@ -853,7 +845,7 @@ ANN static TmplArg_List check_template_args(const Env env, Exp_Call *exp,
 
 ANN static Type check_exp_call_template(const Env env, Exp_Call *exp) {
   /*const */Type t = exp->func->type;
-  if(isa(t, env->gwion->type[et_closure]) > 0) {
+  if(isa(t, env->gwion->type[et_closure])) {
     const Func_Def fdef = closure_def(t);
     t = fdef->base->func->value_ref->type;
   }
@@ -958,7 +950,7 @@ ANN bool func_check(const Env env, Exp_Call *const exp, bool *mod) {
   CHECK_B(check_exp(env, exp->func));
   if (exp->func->exp_type == ae_exp_decl)
     ERR_B(exp->func->loc, _("Can't call late function pointer at declaration "
-                            "site. did you meant to use `:=>`?"))
+                            "site. did you meant to use `:=>`?"));
   const Type t = actual_type(env->gwion, exp->func->type);
   if (is_func(env->gwion, t) && exp->func->exp_type == ae_exp_dot && // is_callable
       !t->info->value->from->owner_class) {
@@ -990,7 +982,7 @@ ANN void call_add_effect(const Env env, const Func func, const loc_t loc) {
 ANN Type call_type(const Env env, Exp_Call *const exp) {
   const Type t = exp->func->type;
   if (is_func(env->gwion, t)) return t;
-  if(isa(exp->func->type, env->gwion->type[et_closure]) > 0)
+  if(isa(exp->func->type, env->gwion->type[et_closure]))
     return closure_def(t)->base->func->value_ref->type;
   if(is_class(env->gwion, t) && tflag(t->info->base_type, tflag_struct)) {
     const Value v = nspc_lookup_value0(t->info->base_type->nspc, insert_symbol("new"));
@@ -1063,7 +1055,7 @@ ANN Type check_exp_call1(const Env env, Exp_Call *const exp) {
   CHECK_O(check_static(env, exp->func));
   const Type _ret = _check_exp_call1(env, exp);
   if(_ret) return _ret;
-  if(isa(exp->func->type, env->gwion->type[et_closure]) > 0) {
+  if(isa(exp->func->type, env->gwion->type[et_closure])) {
     if(exp->func->exp_type == ae_exp_dot && t->info->value->from->owner_class) {
       Exp* args = exp->args;
       Exp* this_arg = cpy_exp(env->gwion->mp, exp->func->d.exp_dot.base);
@@ -1144,7 +1136,7 @@ ANN static Type check_exp_post(const Env env, const Exp_Postfix *post) {
   CHECK_O(opi.lhs);
   exp_setuse(post->exp, 1);
   const Type t = op_check(env, &opi);
-  if (t && isa(t, env->gwion->type[et_object]) < 0)
+  if (t && !isa(t, env->gwion->type[et_object]))
     exp_setmeta(exp_self(post), 1);
   return t;
 }
@@ -1220,7 +1212,7 @@ ANN static Type check_exp_call(const Env env, Exp_Call *exp) {
     CHECK_O(func_check(env, exp, &mod));
     if (mod) return exp_self(exp)->type;
     Type t = actual_type(env->gwion, exp->func->type);
-    if(isa(exp->func->type, env->gwion->type[et_closure]) > 0) {
+    if(isa(exp->func->type, env->gwion->type[et_closure])) {
       t = typedef_base(t);
       t = mp_vector_at(t->info->cdef->body, Section , 0)->d.func_def->base->func->value_ref->type;
     }
@@ -1276,7 +1268,7 @@ ANN static Type check_exp_if(const Env env, Exp_If *const exp_if) {
     ERR_O(exp_self(exp_if)->loc,
           _("incompatible types '%s' and '%s' in if expression..."),
           if_exp->name, else_exp->name);
-  if (isa(if_exp, else_exp) < 0)
+  if (!isa(if_exp, else_exp))
     ERR_O(exp_self(exp_if)->loc, _("condition type '%s' does not match '%s'"),
           cond->name, ret->name);
   exp_setuse(exp_if->cond, true);
@@ -1312,7 +1304,7 @@ ANN bool check_type_def(const Env env, const Type_Def tdef) {
     const Func_Def fdef = new_func_def(env->gwion->mp, fb, code);
     tdef->when_def           = fdef;
     CHECK_B(traverse_func_def(env, fdef));
-    if (isa(when->type, env->gwion->type[et_bool]) < 0) {
+    if (!isa(when->type, env->gwion->type[et_bool])) {
       char explain[strlen(when->type->name) + 20];
       sprintf(explain, "found `{/+}%s{0}`", when->type->name);
       gwerr_basic("Invalid `{/+}when{0}` predicate expression type", explain,
@@ -1409,7 +1401,7 @@ ANN static inline bool for_empty(const Env env, const Stmt_For stmt) {
     ERR_B(stmt_self(stmt)->loc,
           _("empty for loop condition..."
             "...(note: explicitly use 'true' if it's the intent)"
-            "...(e.g., 'for(; true;){{ /*...*/ }')"))
+            "...(e.g., 'for(; true;){{ /*...*/ }')"));
   return true;
 }
 
@@ -1500,7 +1492,7 @@ ANN static bool check_stmt_return(const Env env, const Stmt_Exp stmt) {
   if (is_new(env->func->def)) {
     if(stmt->val)
       ERR_B(stmt_self(stmt)->loc,
-            _("'return' statement inside constructor function should have no expression"))
+            _("'return' statement inside constructor function should have no expression"));
     return true;
   }
   DECL_B(const Type, ret_type,
@@ -1509,7 +1501,7 @@ ANN static bool check_stmt_return(const Env env, const Stmt_Exp stmt) {
     env->func->def->base->ret_type = ret_type;
     return true;
   }
-  if (isa(ret_type, env->func->def->base->ret_type) > 0) return true;
+  if (isa(ret_type, env->func->def->base->ret_type)) return true;
   if (tflag(ret_type, tflag_noret))
     ERR_B(stmt->val->loc, _("Can't use type `{+G}%s{+G}` for return"),
           ret_type->name);
@@ -1518,22 +1510,22 @@ ANN static bool check_stmt_return(const Env env, const Stmt_Exp stmt) {
     if (env->func->def->base->tag.sym == insert_symbol("@implicit") &&
         ret_type == arg->type)
       ERR_B(stmt_self(stmt)->loc,
-            _("can't use implicit casting while defining it"))
+            _("can't use implicit casting while defining it"));
     if (check_implicit(env, stmt->val, env->func->def->base->ret_type))
       return true;
     ERR_B(stmt_self(stmt)->loc,
           _("invalid return type: got '%s', expected '%s'"), ret_type->name,
-          env->func->def->base->ret_type->name)
+          env->func->def->base->ret_type->name);
   }
-  if (isa(env->func->def->base->ret_type, env->gwion->type[et_void]) > 0)
+  if (isa(env->func->def->base->ret_type, env->gwion->type[et_void]))
     return true;
-  ERR_B(stmt_self(stmt)->loc, _("missing value for return statement"))
+  ERR_B(stmt_self(stmt)->loc, _("missing value for return statement"));
 }
 
-#define describe_check_stmt_stack(stack, name)                                 \
+#define describe_check_stmt_stack(stack, name)                                \
   ANN static bool check_stmt_##name(const Env env, const Stmt* stmt) {        \
-    if (!vector_size(&env->scope->stack))                                      \
-      ERR_B(stmt->loc, _("'" #name "' found outside of for/while/until..."))   \
+    if (!vector_size(&env->scope->stack))                                     \
+      ERR_B(stmt->loc, _("'" #name "' found outside of for/while/until...")); \
     return true;                                                              \
   }
 describe_check_stmt_stack(conts, continue);
@@ -1606,7 +1598,7 @@ ANN static Symbol case_op(const Env env, const Type base, Exp* e) {
 ANN static bool match_case_exp(const Env env, Exp* e) {
   Exp* last = e;
   for (m_uint i = 0; i < vector_size(&env->scope->match->cond); e = e->next, ++i) {
-    if (!e) ERR_B(last->loc, _("no enough to match"))
+    if (!e) ERR_B(last->loc, _("no enough to match"));
     last              = e;
     Exp*    base = (Exp*)vector_at(&env->scope->match->cond, i);
     const Symbol op   = case_op(env, base->type, e);
@@ -1627,7 +1619,7 @@ ANN static bool match_case_exp(const Env env, Exp* e) {
       CHECK_B(ret);
     }
   }
-  if (e) ERR_B(e->loc, _("too many expression to match"))
+  if (e) ERR_B(e->loc, _("too many expression to match"));
   return true;
 }
 
@@ -1764,7 +1756,7 @@ ANN static bool check_signature_match(const Env env, const Func_Def fdef,
                                         const Func parent) {
   if (GET_FLAG(parent->def->base, final))
     ERR_B(fdef->base->td->tag.loc, _("can't override final function '%s'\n"),
-          parent->name)
+          parent->name);
   if (GET_FLAG(parent->def->base, static) != GET_FLAG(fdef->base, static)) {
     const m_str c_name = fdef->base->func->value_ref->from->owner_class->name;
     const m_str p_name = parent->value_ref->from->owner_class->name;
@@ -1773,9 +1765,9 @@ ANN static bool check_signature_match(const Env env, const Func_Def fdef,
           _("function '%s.%s' ressembles '%s.%s' but cannot override...\n"
             "  ...(reason: '%s.%s' is declared as 'static')"),
           c_name, f_name, p_name, c_name,
-          GET_FLAG(fdef->base, static) ? c_name : p_name, f_name)
+          GET_FLAG(fdef->base, static) ? c_name : p_name, f_name);
   }
-  if(fdef->base->tmpl || isa(fdef->base->ret_type, parent->def->base->ret_type) > 0)
+  if(fdef->base->tmpl || isa(fdef->base->ret_type, parent->def->base->ret_type))
     return true;
   gwerr_basic_from("invalid overriding", NULL, NULL, fdef->base->func->value_ref->from, 0);
   gwerr_secondary_from("does not match", parent->value_ref->from);
@@ -1840,7 +1832,7 @@ ANN static bool check_func_overload(const Env env, const Func_Def fdef) {
         ERR_B(f2->def->base->tag.loc,
               _("global function '%s' already defined"
                 " for those arguments"),
-              s_name(fdef->base->tag.sym))
+              s_name(fdef->base->tag.sym));
     }
   }
   return true;
@@ -1867,7 +1859,7 @@ ANN static bool check_func_def_override(const Env env, const Func_Def fdef,
       ERR_B(fdef->base->tag.loc,
             _("function name '%s' conflicts with previously defined value...\n"
               "  from super class '%s'..."),
-            s_name(fdef->base->tag.sym), override->from->owner_class->name)
+            s_name(fdef->base->tag.sym), override->from->owner_class->name);
     *ov = override;
   }
   if (func->value_ref->from->offset &&
@@ -2003,9 +1995,10 @@ ANN bool _check_func_def(const Env env, const Func_Def f) {
   if (ret) {
     if (env->class_def && fdef->base->effects.ptr &&
         (override &&
-         !check_effect_overload(&fdef->base->effects, override->d.func_ref)))
+         !check_effect_overload(&fdef->base->effects, override->d.func_ref))) {
       ERR_B(fdef->base->tag.loc, _("too much effects in override."),
-            s_name(fdef->base->tag.sym))
+            s_name(fdef->base->tag.sym));
+      }
       if(is_new(f) && !tflag(env->class_def, tflag_struct))
         CHECK_B(check_ctor(env, func));
   }
@@ -2157,7 +2150,7 @@ ANN static bool class_def_has_body(Ast ast) {
 }
 
 ANN static inline bool type_is_recurs(const Type t, const Type tgt) {
-  return isa(tgt, t) > 0 || isa(t, tgt) > 0 || (tgt->info->tuple && vector_find(&tgt->info->tuple->contains, (m_uint)t) > -1);
+  return isa(tgt, t) || isa(t, tgt) || (tgt->info->tuple && vector_find(&tgt->info->tuple->contains, (m_uint)t) > -1);
 }
 
 ANN static bool recursive_type_base(const Env env, const Type t);
index 1478b0746faf4db5e6ffc82911422ae3d6c53d89..c52af181bd9ded1d1431423be865c2942f5500d2 100644 (file)
@@ -14,7 +14,7 @@
 
 ANN static bool var_match(const Value a, const Value b) {
   bool error = true;
-  if (isa(a->type, a->type) < 0) {
+  if (!isa(a->type, a->type)) {
     gwerr_basic_from("invalid variable type", NULL, NULL, a->from, 0);
     error = false;
   }
index 8b78fc3d4ef74965a2739930c0a712f800d62a96..7eb293781a4af9117603457a446c1cc297631f86 100644 (file)
@@ -162,7 +162,7 @@ ANN static Func find_tmpl(const Env env, const Value v, Exp_Call *const exp,
       get_tmpl(v->from->owner_class) : NULL;
   if(tmpl)
     (void)template_push_types(env, tmpl);
-  const bool is_clos = isa(exp->func->type, env->gwion->type[et_closure]) > 0;
+  const bool is_clos = isa(exp->func->type, env->gwion->type[et_closure]);
   const Func m_func = !is_clos ? func_match(env, &ra)
                                : fptr_match(env, &ra);
   if(tmpl)
@@ -210,13 +210,6 @@ ANN static Func _find_template_match(const Env env, const Value v,
   return f;
 }
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
 ANN static inline bool check_call(const Env env, const Exp_Call *exp) {
   const ae_exp_t et = exp->func->exp_type;
   if (et != ae_exp_primary && et != ae_exp_dot && et != ae_exp_cast)
index b145b11484ec86486d41ba212f910e2af02fad30..247db224cab581c094bff15a94eee5af1a2a31de 100644 (file)
@@ -205,7 +205,7 @@ ANN2(1,2,3) bool _tmpl_match(const Env env, const Type t, Type_Decl *const td,
   if (!td->next && !td->types && op_template_type(td->tag.sym, sl))
     return true;
   const Type base = known_type(env, td);
-  return base ? isa(t, base) > 0 : false;
+  return base ? isa(t, base) : false;
 }
 
 //! check Func_Base matches for template operator
index 5db510d70fc070b9d384211f40bcffee50f6ff67..cc3a76a98f59b8c6d8f407929d04ff1c3663d209 100644 (file)
@@ -150,7 +150,7 @@ ANN static Func partial_match(const Env env, const Func up, Exp* args, const loc
       const Func next = partial_match(env, f->next, args, loc);
       if(next) {
         const Type tnext = next->value_ref->from->owner_class;
-        if(!t || !tnext || isa(t, tnext) < 0) {
+        if(!t || !tnext || !isa(t, tnext)) {
           gwerr_basic(_("can't resolve ambiguity"), _("in this partial application"), _("use typed holes: _ $ type"), env->name, loc, 0);
           gw_err(_("\nthose functions could match:\n"));
           print_signature(f);
index ad21423c2ac353cee7fecb9b4fa7f37c79df7227..c3f3a139729f0b977f6471695932e34c837303e6 100644 (file)
 #include "spread.h"
 #include "emit.h"
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
 static inline void add_type(const Env env, const Nspc nspc, const Type t) {
   nspc_add_type_front(nspc, insert_symbol(t->name), t);
 }
@@ -57,7 +50,7 @@ ANN static inline bool scan0_global(const Env env, const ae_flag flag,
     *global = true;
     return true;
   }
-  ERR_B(loc, _("can't declare as global in class def"))
+  ERR_B(loc, _("can't declare as global in class def"));
 }
 
 ANN bool scan0_fptr_def(const Env env, const Fptr_Def fptr) {
@@ -355,7 +348,7 @@ ANN static bool find_traits(const Env env, ID_List traits, const loc_t loc) {
 ANN static Type scan0_class_def_init(const Env env, const Class_Def cdef) {
   CHECK_O(scan0_defined(env, cdef->base.tag));
   DECL_O(const Type, parent, = cdef_parent(env, cdef));
-  if(GET_FLAG(cdef, global) && isa(parent, env->gwion->type[et_closure]) < 0 && !type_global(env, parent)) {
+  if(GET_FLAG(cdef, global) && !isa(parent, env->gwion->type[et_closure]) && !type_global(env, parent)) {
     gwerr_basic(_("parent type is not global"), NULL, NULL, env->name, cdef->base.ext ? cdef->base.ext->tag.loc : cdef->base.tag.loc, 0);
     declared_here(parent->info->value);
     env_set_error(env,  true);
index a32f1ebd908f5559116ac17532f234ae529a7097..83cdb98b3f996a1495d3f29628261361c1f4d034 100644 (file)
 #include "instr.h"
 #include "import.h"
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
 ANN static bool scan1_stmt_list(const Env env, Stmt_List list);
 ANN static bool scan1_stmt(const Env env, Stmt* stmt);
 
@@ -47,7 +40,7 @@ ANN static inline bool ensure_scan1(const Env env, const Type t) {
 
 ANN static bool check_global(const Env env, const Type t, const loc_t loc) {
   const ValueFrom *from = t->info->value->from;
-  if(from->owner_class && isa(from->owner_class, env->class_def) > 0)
+  if(from->owner_class && isa(from->owner_class, env->class_def))
     return true;
   if(from_global_nspc(env, from->owner) ||
     (from->owner_class && type_global(env, from->owner_class)))
@@ -83,7 +76,7 @@ ANN static Type scan1_exp_decl_type(const Env env, Exp_Decl *decl) {
   if (decl->var.td->tag.sym == insert_symbol("auto") && decl->type) return decl->type;
   if (GET_FLAG(t, private) && t->info->value->from->owner != env->curr)
     ERR_O(exp_self(decl)->loc, _("can't use private type %s"), t->name);
-  if (GET_FLAG(t, protect) && (!env->class_def || isa(t, env->class_def) < 0))
+  if (GET_FLAG(t, protect) && (!env->class_def || !isa(t, env->class_def)))
     ERR_O(exp_self(decl)->loc, _("can't use protected type %s"), t->name);
   return t;
 }
@@ -95,10 +88,10 @@ static inline bool scan1_defined(const Env env, const Var_Decl *var) {
         env->scope->depth)
            ? nspc_lookup_value1
            : nspc_lookup_value2)(env->curr, var->tag.sym);
-  if(v && (!v->from->owner_class || isa(env->class_def, v->from->owner_class) > 0))
+  if(v && (!v->from->owner_class || isa(env->class_def, v->from->owner_class)))
     ERR_B(var->tag.loc,
           _("variable %s has already been defined in the same scope..."),
-          s_name(var->tag.sym))
+          s_name(var->tag.sym));
   return true;
 }
 
@@ -141,7 +134,7 @@ ANN static bool scan1_decl(const Env env, Exp_Decl *const decl) {
         set_vflag(v, vflag_member);
         if(tflag(t, tflag_release))
           set_tflag(env->class_def, tflag_release);
-        if(isa(t, env->gwion->type[et_object]) > 0)
+        if(isa(t, env->gwion->type[et_object]))
           set_vflag(v, vflag_release);
         if (tflag(env->class_def, tflag_struct)) {
           v->from->offset = env->class_def->size;
@@ -168,7 +161,7 @@ ANN bool scan1_exp_decl(const Env env, Exp_Decl *const decl) {
   if (global) {
     if (env->context) env->context->global = true;
     if (!type_global(env, decl->type))
-      ERR_B(exp_self(decl)->loc, _("type '%s' is not global"), decl->type->name)
+      ERR_B(exp_self(decl)->loc, _("type '%s' is not global"), decl->type->name);
   }
   const m_uint scope = !global ? env->scope->depth : env_push_global(env);
   const bool ret   = scan1_decl(env, decl);
@@ -340,7 +333,7 @@ ANN static inline bool shadow_arg(const Env env, const Tag tag) {
     const Value v = nspc_lookup_value0(nspc, tag.sym);
     if (v && !env->func->def->builtin) {
       const Type owner = v->from->owner_class;
-      if (owner && env->class_def && isa(env->class_def, owner) < 0)
+      if (owner && env->class_def && !isa(env->class_def, owner))
         continue;
       return shadow_err(env, v, tag.loc);
     }
@@ -597,7 +590,7 @@ ANN bool scan1_union_def(const Env env, const Union_Def udef) {
 ANN static bool scan1_stmt_return(const Env env, const Stmt_Exp stmt) {
   if (!env->func)
     ERR_B(stmt_self(stmt)->loc,
-          _("'return' statement found outside function definition"))
+          _("'return' statement found outside function definition"));
   if (env->scope->depth == 1) env->func->memoize = 1;
   if(stmt->val) CHECK_B(scan1_exp(env, stmt->val));
   return true;
@@ -657,11 +650,11 @@ ANN static bool scan1_stmt_list(const Env env, Stmt_List l) {
 ANN static bool class_internal(const Env env, const Func_Base *base) {
   assert(base->td);
   if (!env->class_def)
-    ERR_B(base->td->tag.loc, _("'%s' must be in class def!!"), s_name(base->tag.sym))
+    ERR_B(base->td->tag.loc, _("'%s' must be in class def!!"), s_name(base->tag.sym));
   if (base->args)
-    ERR_B(base->td->tag.loc, _("'%s' must not have args"), s_name(base->tag.sym))
+    ERR_B(base->td->tag.loc, _("'%s' must not have args"), s_name(base->tag.sym));
   if (base->ret_type != env->gwion->type[et_void])
-    ERR_B(base->td->tag.loc, _("'%s' must return 'void'"), s_name(base->tag.sym))
+    ERR_B(base->td->tag.loc, _("'%s' must return 'void'"), s_name(base->tag.sym));
   return true;
 }
 
@@ -670,15 +663,15 @@ ANN static inline bool scan_internal_arg(const Env        env,
   if (mp_vector_len(base->args) == 1) return true;
   assert(base->td);
   ERR_B(base->td->tag.loc, _("'%s' must have one (and only one) argument"),
-        s_name(base->tag.sym))
+        s_name(base->tag.sym));
 }
 
 ANN static inline bool scan_internal_int(const Env        env,
                                            const Func_Base *base) {
   assert(base->td);
   CHECK_B(scan_internal_arg(env, base));
-  if (isa(base->ret_type, env->gwion->type[et_int]) > 0) return true;
-  ERR_B(base->td->tag.loc, _("'%s' must return 'int'"), s_name(base->tag.sym))
+  if (isa(base->ret_type, env->gwion->type[et_int])) return true;
+  ERR_B(base->td->tag.loc, _("'%s' must return 'int'"), s_name(base->tag.sym));
 }
 
 ANN static bool scan_internal(const Env env, const Func_Base *base) {
@@ -812,11 +805,11 @@ ANN static bool scan1_parent(const Env env, const Class_Def cdef) {
   if (cdef->base.ext->array && cdef->base.ext->array->exp)
     CHECK_B(scan1_exp(env, cdef->base.ext->array->exp));
   DECL_B(const Type, parent, = scan1_get_parent(env, &cdef->base));
-  if (isa(parent, env->gwion->type[et_object]) < 0 &&
+  if (!isa(parent, env->gwion->type[et_object]) &&
 //      !(tflag(cdef->base.type, tflag_cdef) || tflag(cdef->base.type, tflag_udef)))
       !(tflag(cdef->base.type, tflag_cdef) || tflag(cdef->base.type, tflag_union)))
-    ERR_B(loc, _("cannot extend primitive type '%s'"), parent->name)
-  if (type_ref(parent)) ERR_B(loc, _("can't use ref type in class extend"))
+    ERR_B(loc, _("cannot extend primitive type '%s'"), parent->name);
+  if (type_ref(parent)) ERR_B(loc, _("can't use ref type in class extend"));
   return true;
 }
 
@@ -836,8 +829,8 @@ ANN static bool cdef_parent(const Env env, const Class_Def cdef) {
 }
 
 ANN static bool scan1_class_def_body(const Env env, const Class_Def cdef) {
-  if(!tmpl_base(cdef->base.tmpl) && isa(cdef->base.type, env->gwion->type[et_closure]) < 0 &&
-   isa(cdef->base.type, env->gwion->type[et_dict]) < 0) {
+  if(!tmpl_base(cdef->base.tmpl) && !isa(cdef->base.type, env->gwion->type[et_closure]) &&
+   !isa(cdef->base.type, env->gwion->type[et_dict])) {
     MemPool mp = env->gwion->mp;
     Ast base = cdef->body;
     Stmt_List ctor = new_mp_vector(mp, Stmt, 0);
index d9d066c90fe4ab44680875653fad68bcb3c3aebc..91a77146ac445e64b34a6634f96bdd0d9edaa5da 100644 (file)
 #include "spread.h"
 #include "closure.h"
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
-
 ANN static bool scan2_stmt(const Env, Stmt*);
 ANN static bool scan2_stmt_list(const Env, Stmt_List);
 
@@ -294,7 +286,7 @@ ANN static bool scan2_func_def_overload(const Env env, const Func_Def f,
     if (!fbflag(f->base, fbflag_internal))
       ERR_B(f->base->tag.loc,
             _("function name '%s' is already used by another value"),
-            overload->name)
+            overload->name);
   }
   const Func obase = overload->d.func_ref;
   if (GET_FLAG(obase->def->base, final) && (!env->class_def || (obase->value_ref->from->owner_class != env->class_def))) {
@@ -305,9 +297,9 @@ ANN static bool scan2_func_def_overload(const Env env, const Func_Def f,
   const bool base = tmpl_base(f->base->tmpl);
   const bool tmpl = fflag(obase, fflag_tmpl);
   if ((!tmpl && base) || (tmpl && !base && !f->base->tmpl))
-    ERR_B(f->base->tag.loc, _("must overload template function with template"))
+    ERR_B(f->base->tag.loc, _("must overload template function with template"));
   if (GET_FLAG(f->base, global) != GET_FLAG(obase->def->base, global))
-    ERR_B(f->base->tag.loc, _("function is declared global")) // improve me
+    ERR_B(f->base->tag.loc, _("function is declared global")); // improve me
   return true;
 }
 
@@ -391,7 +383,7 @@ static bool scan2_fdef_tmpl(const Env env, const Func_Def f,
             ERR_B(f->base->tag.loc,
                   "template function '%s' already defined with those arguments "
                   "in this namespace",
-                  name)
+                  name);
           const Symbol sym =
               func_symbol(env, env->curr->name, name, "template", ff->def->vt_index);
           nspc_add_value(env->curr, sym, value);
index fdab36d44411433b4c1486a954b3d0a0f5353156..369d19b50fcdeb6bcb2bc02f163ec1d929aed1f2 100644 (file)
@@ -105,7 +105,7 @@ ANN bool const_generic_typecheck(const Env env, const Specialized *spec, const T
   CHECK_B(check_exp(env, targ->d.exp));
   // check implicits?
   const Type target = known_type(env, spec->td);
-  if(isa(targ->d.exp->type, target) < 0) {
+  if(!isa(targ->d.exp->type, target)) {
     char msg[256];
     tcol_snprintf(msg, 255, "expected {G+}%s{0}", target->name);
     gwerr_basic("invalid type for const generic argument", msg, NULL, env->name, spec->tag.loc, 0);
@@ -181,14 +181,6 @@ static ANN bool is_single_variadic(const MP_Vector *v) {
   return !strcmp(s_name(spec->tag.sym), "...");
 }
 
-#undef ERR_B
-#define ERR_B(a, b, ...)                                                       \
-  {                                                                            \
-    env_err(env, (a), (b), ##__VA_ARGS__);                                     \
-    return false;                                                              \
-  }
-
-
 ANN2(1,2) bool check_tmpl(const Env env, const TmplArg_List tl, const Specialized_List sl, const loc_t loc, const bool is_spread) {
   if (!sl || sl->len > tl->len || (tl->len != sl->len && !is_spread))
      ERR_B(loc, "invalid template type number");
index 529692cc4de83722b11cd415b2da034bb5fcc3dc..f43d479e76c141d89bea0a04f2640737bfa62188 100644 (file)
@@ -47,7 +47,7 @@ ANN bool pass_set(const Gwion gwion, const Vector passes) {
 /*
 if(!strcmp(name, "none")) {
   vector_clear(v);
-  return GW_OK;
+  return true;
 }
 */
       gw_err("Failed to set compilation passes, back to default\n");
index c0d3809e26878e359326c1d40e3ba084ab79fed3..7d9b292b51967cf88007beb392f0be33738b0acb 100644 (file)
@@ -232,7 +232,7 @@ ANN bool plugin_ini(struct Gwion_ *gwion, const m_str iname, const loc_t loc) {
       env_err(env, loc, "%s: no such plugin\n", iname);
     return false;
   }
-  return GW_OK;
+  return true;
 }
 
 ANN gwdriver_t driver_ini(const struct Gwion_ *gwion, struct SoundInfo_ *si) {
index 64cd6a0dad9bf183c112f7d1853c885f00dd8093..e521b1f9d478e8aa791bd2c333d251eca9d523b1 100644 (file)
@@ -12,7 +12,7 @@
 #include "import.h"
 #include "gack.h"
 
-ANN2(1) static int fmtlen(const char *fmt, va_list args) {
+ANN2(1) static ssize_t fmtlen(const char *fmt, va_list args) {
   va_list tmpa;
   va_copy(tmpa, args);
   const int size = vsnprintf(NULL, 0, fmt, tmpa);
@@ -24,7 +24,8 @@ ANN2(2)
 static int gw_vasprintf(MemPool mp, char **str, const char *fmt, va_list args) {
   char *       base     = *str;
   const size_t base_len = base ? strlen(base) : 0;
-  DECL_BB(const int, size, = fmtlen(fmt, args));
+  const int size = fmtlen(fmt, args);
+  if(size < 0) return -1;
   char *ret = mp_malloc2(mp, base_len + size + 1);
   if (base) strcpy(ret, base);
   const int final_len = vsprintf(ret + base_len, fmt, args);
index edce9916cda03c0d970185f81fedb7eeeef787cc..22ff136ebb7c9d8b71fde2333d048aaad358d17e 100644 (file)
@@ -10,5 +10,5 @@
 
 GWION_IMPORT(non_driver) {
   (void)gwi;
-  return GW_OK;
+  return true;
 }
index f3224fa8ab1c8d6057bf829b3d0594775ddd44c8..eaf6ba91cea0b4eec99b4ffafde7199021d86256 100644 (file)
@@ -19,9 +19,9 @@ GWMODINI(get_module) {
 GWMODEND(get_module) { puts(__func__); }
 
 GWION_IMPORT(get_module) {
-  CHECK_b(set_module(gwi->gwion, "get_module", (void *)1));
-  GWI_OB(get_module(gwi->gwion, "get_module"))
+  CHECK_B(set_module(gwi->gwion, "get_module", (void *)1));
+  GWI_B(get_module(gwi->gwion, "get_module"))
   puts("test passed");
   get_module(gwi->gwion, "non_existant_module");
-  return GW_OK;
+  return true;
 }
index 6988b4c15821d863477e55dbca2e2db217b47fcd..a262e56ee76bbb5c27d48568f572d90bff83f529 100644 (file)
 MFUN(test_mfun) {}
 
 GWION_IMPORT(array) {
-  GWI_OB(gwi_class_ini(gwi, "ArrayTest", NULL))
-  GWI_BB(gwi_item_ini(gwi, "int[]", "int_array"))
-  GWI_BB(gwi_item_end(gwi, 0, obj, NULL)) // import array var
+  GWI_B(gwi_class_ini(gwi, "ArrayTest", NULL))
+  GWI_B(gwi_item_ini(gwi, "int[]", "int_array"))
+  GWI_B(gwi_item_end(gwi, 0, obj, NULL)) // import array var
   GWI_B(gwi_func_ini(gwi, "float[][]", "f"))
   GWI_B(gwi_func_end(gwi, test_mfun, ae_flag_none))
   GWI_B(gwi_func_ini(gwi, "float[][]", "g"))
   GWI_B(gwi_func_end(gwi, test_mfun, ae_flag_none))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 995a8ee4f1529f7cb99bb77e4b18317f5894c9c7..0f99443534fd34c96ba2caa81c7829f0be845172 100644 (file)
@@ -11,5 +11,5 @@
 
 GWION_IMPORT(array_in_var_name) {
   gwi_item_ini(gwi, "int", "array[2][3]");
-  return GW_OK;
+  return true;
 }
index e728a77b6e97bdae6fd21a4a4a37e6580e1bd9c0..3b25bcf490ab6064101624a08d51fa2639c84d16 100644 (file)
@@ -12,5 +12,5 @@
 GWION_IMPORT(array_in_var_name_fail) {
   GWI_B(gwi_union_ini(gwi, "U"))
   GWI_B(gwi_union_add(gwi, "int", "i"))
-  return GW_OK;
+  return true;
 }
index 1cbd95aebafa8805e72fc15b6aa0319458f0e0fa..1f6d750416488149c7b5b40045d90134067906a6 100644 (file)
@@ -11,5 +11,5 @@
 
 GWION_IMPORT(array_incoherent_in_var_name) {
   gwi_item_ini(gwi, "int", "array[2][3][]");
-  return GW_OK;
+  return true;
 }
index 5ad58b8c6354381cfb34b0cc6e6f3063ab3d39a9..1652daae9538e31ca404a5c21b0683de64c5c52c 100644 (file)
@@ -11,5 +11,5 @@
 
 GWION_IMPORT(array_invalid_in_var_name) {
   gwi_item_ini(gwi, "int", "array[.]");
-  return GW_OK;
+  return true;
 }
index 4109bceff4f47801c68713933b7e39da4e0a5e72..aa4b4e56402caf70eccd2979c4ca8bf615ffc078 100644 (file)
@@ -66,12 +66,12 @@ static SFUN(cb_func) {
 
 GWION_IMPORT(callback) {
   GWI_B(gwi_fptr_ini(gwi, "Vec4", "PtrType"))
-  GWI_OB(gwi_fptr_end(gwi, 0))
+  GWI_B(gwi_fptr_end(gwi, 0))
 
-  GWI_OB(gwi_class_ini(gwi, "Callback", NULL))
+  GWI_B(gwi_class_ini(gwi, "Callback", NULL))
   GWI_B(gwi_func_ini(gwi, "int", "callback"))
   GWI_B(gwi_func_arg(gwi, "PtrType", "func"))
   GWI_B(gwi_func_end(gwi, cb_func, ae_flag_static))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 3b5861183a912f717f7746e3f8f710894906a3fa..c6dce35e305f6d1ec334eb3b9e223ffbb8d76869 100644 (file)
@@ -9,10 +9,6 @@
 #include "import.h"
 #include "gwi.h"
 
-static m_int o_map_key;
-static m_int o_map_value;
-#define MAP_KEY(a) *((M_Object *)(a->data + o_map_key))
-#define MAP_VAL(a) *((M_Object *)(a->data + o_map_value))
 static CTOR(class_template_ctor) {
   /*char* name = strdup(o->type_ref->name);*/
   /*char* tmp = strsep(&name, "@");*/
@@ -27,17 +23,17 @@ static CTOR(class_template_ctor) {
 }
 
 GWION_IMPORT(class_template) {
-  GWI_OB(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL))
+  GWI_B(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL));
   gwi_class_xtor(gwi, class_template_ctor, NULL);
-  GWI_BB(gwi_item_ini(gwi, "A[]", "key"))
-  GWI_BB((o_map_key = gwi_item_end(gwi, ae_flag_none, obj, NULL)))
-  GWI_BB(gwi_item_ini(gwi, "B[]", "value"))
-  GWI_BB((o_map_value = gwi_item_end(gwi, ae_flag_none, obj, NULL)))
-  GWI_B(gwi_func_ini(gwi, "int", ":[C,D]test"))
-  GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
+  GWI_B(gwi_item_ini(gwi, "A[]", "key"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  GWI_B(gwi_item_ini(gwi, "B[]", "value"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  GWI_B(gwi_func_ini(gwi, "int", ":[C,D]test"));
+  GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none));
 
-  GWI_B(gwi_class_end(gwi))
-  GWI_BB(gwi_item_ini(gwi, ":[:[int]Ptr,int[]]ClassTemplate", "testObject"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, obj, NULL))
-  return GW_OK;
+  GWI_B(gwi_class_end(gwi));
+  GWI_B(gwi_item_ini(gwi, ":[:[int]Ptr,int[]]ClassTemplate", "testObject"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  return true;
 }
index 06ad7e54033ac14b3ee7af087bafb27e514a22d6..0a88e5828f6dcafaaff25b0303c152323bfa54a6 100644 (file)
@@ -10,9 +10,9 @@
 #include "gwi.h"
 
 GWION_IMPORT(class_template_fail) {
-  GWI_OB(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL))
+  GWI_B(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL))
   GWI_B(gwi_func_ini(gwi, "int", "test"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 92ed1b6c6f87b3d633568eaab0bf5a8032345bb1..ae6a681f3f9142aed79ea90b0ef9be6fe9477745 100644 (file)
@@ -9,22 +9,17 @@
 #include "import.h"
 #include "gwi.h"
 
-static m_int o_map_key;
-static m_int o_map_value;
-#define MAP_KEY(a) *((M_Object *)(a->data + o_map_key))
-#define MAP_VAL(a) *((M_Object *)(a->data + o_map_value))
-
 GWION_IMPORT(class_template_invalid) {
-  GWI_OB(gwi_class_ini(gwi, "ClassTemplate:[A,B]", NULL))
-  GWI_BB(gwi_item_ini(gwi, "A[]", "key"))
-  GWI_BB((o_map_key = gwi_item_end(gwi, ae_flag_none, obj, NULL)))
-  GWI_BB(gwi_item_ini(gwi, "B[]", "value"))
-  GWI_BB((o_map_value = gwi_item_end(gwi, ae_flag_none, obj, NULL)))
-  GWI_B(gwi_func_ini(gwi, "int", "test:[C,D]"))
-  GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
+  GWI_B(gwi_class_ini(gwi, "ClassTemplate:[A,B]", NULL));
+  GWI_B(gwi_item_ini(gwi, "A[]", "key"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  GWI_B(gwi_item_ini(gwi, "B[]", "value"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  GWI_B(gwi_func_ini(gwi, "int", "test:[C,D]"));
+  GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none));
 
-  GWI_B(gwi_class_end(gwi))
-  GWI_BB(gwi_item_ini(gwi, "ClassTemplate:[:[int]Ptr,int[]]", "testObject"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, obj, NULL))
-  return GW_OK;
+  GWI_B(gwi_class_end(gwi));
+  GWI_B(gwi_item_ini(gwi, "ClassTemplate:[:[int]Ptr,int[]]", "testObject"));
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL));
+  return true;
 }
index ddd76fed9204154db6487bac8536fa869f497708..8b5a404a719b0db096158aac399e6c6075433d54 100644 (file)
@@ -12,7 +12,7 @@
 
 #include <string.h>
 GWION_IMPORT(compile_file) {
-  DECL_OB(FILE *, file, = fopen("rm_me.gw", "w+"));
+  DECL_B(FILE *, file, = fopen("rm_me.gw", "w+"));
   if(fprintf(file, "1;") >= 0) {
     rewind(file);
     const bool ret = compile_file(gwi->gwion, __FILE__, file);
index dc7da459e5270afdf1c383d872952464e87cca39..6a00c8e279e11e5f4c1c6ecc4770985582220357 100644 (file)
@@ -13,27 +13,27 @@ SFUN(coverage_int) { *(m_uint *)RETURN = 0; }
 SFUN(coverage_float) { *(m_float *)RETURN = 0; }
 
 GWION_IMPORT(coverage) {
-  GWI_OB(gwi_class_ini(gwi, "Coverage", NULL))
+  GWI_B(gwi_class_ini(gwi, "Coverage", NULL))
   GWI_B(gwi_func_ini(gwi, "int", "i"))
   GWI_B(gwi_func_end(gwi, coverage_int, ae_flag_static))
   GWI_B(gwi_func_ini(gwi, "float", "f"))
   GWI_B(gwi_func_end(gwi, coverage_float, ae_flag_static))
 
-  GWI_BB(gwi_item_ini(gwi, "int", "s_i"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static, num, 5))
+  GWI_B(gwi_item_ini(gwi, "int", "s_i"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static, num, 5))
 
-  GWI_BB(gwi_item_ini(gwi, "float", "s_f"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static, fnum, 2.1))
+  GWI_B(gwi_item_ini(gwi, "float", "s_f"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static, fnum, 2.1))
 
-  GWI_BB(gwi_item_ini(gwi, "int", "sc_i"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static | ae_flag_const, num, 5))
+  GWI_B(gwi_item_ini(gwi, "int", "sc_i"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static | ae_flag_const, num, 5))
 
-  GWI_BB(gwi_item_ini(gwi, "float", "sc_f"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static | ae_flag_const, fnum, 2.1))
+  GWI_B(gwi_item_ini(gwi, "float", "sc_f"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static | ae_flag_const, fnum, 2.1))
 
-  GWI_BB(gwi_item_ini(gwi, "int[][]", "test_array"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, obj, NULL))
+  GWI_B(gwi_item_ini(gwi, "int[][]", "test_array"))
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL))
 
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index d614ea95c489df7b516c981db137f355904ebd28..93e0fb1ccc5342b78d93a2371a003abae7dd6c8d 100644 (file)
@@ -11,7 +11,7 @@
 
 GWION_IMPORT(deps) {
   (void)gwi;
-  return GW_OK;
+  return true;
 }
 
 static const m_str deps[] = {"array", NULL};
index 90b5986f6945e6b867ed79f4da7f982bb1c0eb36..fd7ce7e3ccb44949b86917f7ad0eb2af69b3c56c 100644 (file)
@@ -11,5 +11,5 @@
 GWION_IMPORT(empty_union) {
   GWI_B(gwi_union_ini(gwi, "U"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index 8a2c78930d6bd1e3fd28e28d6d68a562a8641e3f..c5f0544ef04465e09e7324cb83fc901599993187 100644 (file)
@@ -11,5 +11,5 @@
 MFUN(test_mfun) {}
 GWION_IMPORT(end_class) {
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 4cafdecd28a89c9fc144bc80477536700dd674f2..c1fada839e5a494f287586ecf151357d83cfdf77 100644 (file)
@@ -20,9 +20,9 @@ GWION_IMPORT(enum) {
   GWI_B(gwi_enum_add(gwi, "TYPED_ENUM7", 7))
   GWI_B(gwi_enum_add(gwi, "TYPED_ENUM8", 8))
   GWI_B(gwi_enum_add(gwi, "TYPED_ENUM9", 9))
-  GWI_OB(gwi_enum_end(gwi))
+  GWI_B(gwi_enum_end(gwi))
 
-  GWI_OB(gwi_class_end(gwi))
+  GWI_B(gwi_class_end(gwi))
 
-  return GW_OK;
+  return true;
 }
index db1b67cbd4b4b2ad0186a1618f9f37872468c66b..2d5a9cc3a2b4916a4097ed393f164d9163b09be3 100644 (file)
@@ -11,6 +11,6 @@
 GWION_IMPORT(enum_fail) {
   GWI_B(gwi_enum_ini(gwi, "int"))
   GWI_B(gwi_enum_add(gwi, "zero", 0))
-  GWI_OB(gwi_enum_end(gwi))
-  return GW_OK;
+  GWI_B(gwi_enum_end(gwi))
+  return true;
 }
index ee0d9849ff2dc87664b0c86fbe9bb8f43c84cac4..c1408faf25a27863cecda6a4a8da48aeab8a035e 100644 (file)
@@ -11,6 +11,6 @@
 GWION_IMPORT(enum_fail2) {
   GWI_B(gwi_enum_ini(gwi, "tmp"))
   GWI_B(gwi_enum_add(gwi, "adc", 0))
-  GWI_OB(gwi_enum_end(gwi))
-  return GW_OK;
+  GWI_B(gwi_enum_end(gwi))
+  return true;
 }
index eed36eff16bf1b73064f357b8dbbbc617bdaa564..dc4b67ac6530c4d1f302d8531e52ea378738f487 100644 (file)
@@ -12,5 +12,5 @@ GWION_IMPORT(enum_fail3) {
   GWI_B(gwi_enum_ini(gwi, "test"))
   GWI_B(gwi_enum_add(gwi, "adc", 0))
   GWI_B(gwi_enum_ini(gwi, "error"))
-  return GW_OK;
+  return true;
 }
index b76038759aa32f964d919306e7c416e180a9fb3d..3688c55f05c8bf39873bdbeea862c06839b6aa37 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(extend_array) {
-  GWI_OB(gwi_class_ini(gwi, "ArrayExt", "float[1]"))
+  GWI_B(gwi_class_ini(gwi, "ArrayExt", "float[1]"))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index aa99f196128779704fa59c56f282790b9839e3ab..74b0e1ae7b6a703ae53b0c0128d41631c67b081b 100644 (file)
 static MFUN(test_func) { puts("test"); }
 GWION_IMPORT(fptr) {
   GWI_B(gwi_fptr_ini(gwi, "void", "PtrType"))
-  GWI_OB(gwi_fptr_end(gwi, 0))
+  GWI_B(gwi_fptr_end(gwi, 0))
 
-  GWI_OB(gwi_class_ini(gwi, "FuncTypedef", NULL))
+  GWI_B(gwi_class_ini(gwi, "FuncTypedef", NULL))
   GWI_B(gwi_fptr_ini(gwi, "void", "PtrType"))
-  GWI_OB(gwi_fptr_end(gwi, ae_flag_static))
+  GWI_B(gwi_fptr_end(gwi, ae_flag_static))
   GWI_B(gwi_func_ini(gwi, "void", "test_func"))
   GWI_B(gwi_func_end(gwi, test_func, ae_flag_static))
-  GWI_BB(gwi_item_ini(gwi, "PtrType", "ptr"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static, obj, NULL))
+  GWI_B(gwi_item_ini(gwi, "PtrType", "ptr"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static, obj, NULL))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index cd7bfce390c1a63f2db4760d1b90a205f8d03eb1..c50ad9ec55069006bb64c2a26aa772466e7b8056 100644 (file)
@@ -10,8 +10,8 @@
 
 GWION_IMPORT(fptr_tmpl) {
   Type t_func_typedef;
-  GWI_OB((t_func_typedef = gwi_mk_type(gwi, "FuncTypedef", SZ_INT, NULL)))
+  GWI_B((t_func_typedef = gwi_mk_type(gwi, "FuncTypedef", SZ_INT, NULL)))
   GWI_B(gwi_fptr_ini(gwi, "int", "test:[test]"))
-  GWI_OB(gwi_fptr_end(gwi, 0))
-  return GW_OK;
+  GWI_B(gwi_fptr_end(gwi, 0))
+  return true;
 }
index 5fad173e92e4e0c8b7564aaa2505baf828043294..ee21c7461af21245487b57df0c58d6f10b0c7afe 100644 (file)
@@ -10,6 +10,6 @@
 
 GWION_IMPORT(fptr_tmpl_fail) {
   GWI_B(gwi_fptr_ini(gwi, "int~", "test:[A]"))
-  GWI_OB(gwi_fptr_end(gwi, 0))
-  return GW_OK;
+  GWI_B(gwi_fptr_end(gwi, 0))
+  return true;
 }
index 20bf9599a278c07e4b24a7d5b4ce41c4a328050c..f9a0b1298b5108e00e63871d58ddabe4c5f171e6 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(func_fail) {
   GWI_B(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_B(gwi_func_arg(gwi, "Int", "i"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index a50a045ace3f77fcd262d512b9b71cb2c3723324..e2d2aa732de9e2eb309169c091412a6eac2f9de0 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(func_fail2) {
   GWI_B(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_B(gwi_func_arg(gwi, "int", "me"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index 4cd99ff566d27b4a3c4f01f77fbd086edca46116..fc137f4b6d9990c9f64838b7bc1e870075eb2d3f 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(func_fail3) {
   GWI_B(gwi_func_ini(gwi, "int", "test"))
   GWI_B(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index 318002718267261818a5a0b6bdaf122169486393..191e8390891fe8a3d63946ef86b86ca93adda09e 100644 (file)
@@ -12,6 +12,6 @@
 GWION_IMPORT(func_fail4) {
   GWI_B(gwi_func_ini(gwi, "Ptr:[int]", "test:[A]"))
   GWI_B(gwi_func_arg(gwi, "int", "i[][]"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, num, 0))
-  return GW_OK;
+  GWI_B(gwi_item_end(gwi, ae_flag_none, num, 0))
+  return true;
 }
index 3ae715a10ed19c1338ffcebc20f09fc3e86ddf55..4117624b21270797caabed98c62961b2dfa87e49 100644 (file)
@@ -12,5 +12,5 @@
 GWION_IMPORT(func_subscript_not_empty) {
   GWI_B(gwi_func_ini(gwi, "int[]", "test"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index 8e6f13c4c75f2a73c21d560ce622b9928b939791..c434fa883252ca33f4932ee4a2df10b70dd1655d 100644 (file)
@@ -15,5 +15,5 @@ GWION_IMPORT(func_tmpl) {
   GWI_B(gwi_func_ini(gwi, "int", "test:[A]"))
   GWI_B(gwi_func_arg(gwi, "A", "i"))
   GWI_B(gwi_func_end(gwi, func_tmpl_xfun, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index 803f7a8ca26eb6a3f2f1b3a3d4524c6fef7c11ae..d4360919715f45c257c3eb08bf67a91757453c70 100644 (file)
@@ -14,5 +14,5 @@ static SFUN(func_tmpl_xfun) {}
 GWION_IMPORT(func_tmpl_fail) {
   GWI_B(gwi_func_ini(gwi, "voit", "test:[A]"))
   GWI_B(gwi_func_end(gwi, func_tmpl_xfun, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index 98641d2778dd623098e8d979659f6f25f7e265e8..a7c26c868a69242ac9b3ce0f635f95a645d30b7d 100644 (file)
@@ -30,5 +30,5 @@ GWION_IMPORT(func_too_many_arg) {
   GWI_B(gwi_func_arg(gwi, "int", "y"))
   GWI_B(gwi_func_arg(gwi, "int", "z"))
   GWI_B(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index f5e8e392ab02ad6a123de68af0c0a2130327b929..74d0de516d865bfe995830679b09e4a6a5c0dee7 100644 (file)
@@ -18,5 +18,5 @@ GWION_IMPORT(global_func) {
   GWI_B(gwi_func_ini(gwi, "int", "test"))
   GWI_B(gwi_func_arg(gwi, "int", "i"))
   GWI_B(gwi_func_end(gwi, coverage_int, ae_flag_none))
-  return GW_OK;
+  return true;
 }
index fee9f06330f7f0f93b67c6aec18f207550e66058..46afa804ee7f05036b71473fbf893a72bd18fa86 100644 (file)
@@ -13,9 +13,9 @@ GWION_IMPORT(global_var) {
   const M_Object o =
       new_object(gwi->gwion->mp, gwi->gwion->type[et_string]);
   STRING(o) = s_name(insert_symbol(gwi->gwion->st, "test"));
-  GWI_BB(gwi_item_ini(gwi, "string", "i"))
-  GWI_BB(gwi_item_end(gwi, 0, obj, o))
-  GWI_BB(gwi_item_ini(gwi, "float", "f"))
-  GWI_BB(gwi_item_end(gwi, 0, fnum, 2.1))
-  return GW_OK;
+  GWI_B(gwi_item_ini(gwi, "string", "i"))
+  GWI_B(gwi_item_end(gwi, 0, obj, o))
+  GWI_B(gwi_item_ini(gwi, "float", "f"))
+  GWI_B(gwi_item_end(gwi, 0, fnum, 2.1))
+  return true;
 }
index a52a33e5251f5c47d836f302d67d3a4011178843..da324ea462cf182eae4b83cd54414f56f64dd815 100644 (file)
 
 static MFUN(test_mfun) {}
 GWION_IMPORT(invalid_arg) {
-  GWI_OB(gwi_class_ini(gwi, "InvalidArg", NULL))
+  GWI_B(gwi_class_ini(gwi, "InvalidArg", NULL))
   GWI_B(gwi_func_ini(gwi, "int[]", "func"))
   GWI_B(gwi_func_arg(gwi, ".int", "i"))
   GWI_B(gwi_func_end(gwi, test_mfun, ae_flag_static))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 6763bd96d9c2e86f53042d486b3a3e792330efc6..10317c60defb02796ad67aeb1296e2e029780a4e 100644 (file)
@@ -10,7 +10,7 @@
 
 static MFUN(test_mfun) {}
 GWION_IMPORT(invalid_array) {
-  GWI_OB(gwi_class_ini(gwi, "InvalidArray", NULL))
+  GWI_B(gwi_class_ini(gwi, "InvalidArray", NULL))
   GWI_B(gwi_func_ini(gwi, "int[]", "func"))
   GWI_B(gwi_func_arg(gwi, "int[][]", "i"))
   GWI_B(gwi_func_arg(gwi, "int", "j[]"))
@@ -30,5 +30,5 @@ GWION_IMPORT(invalid_array) {
   GWI_B(gwi_func_end(gwi, test_mfun, ae_flag_static))
 
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 171f391523c4b16bc86a8d2a6eadb7ce778b4af4..67fddb6111c98f16b713959d5078aef16c60dd1c 100644 (file)
 
 static MFUN(test_mfun) {}
 GWION_IMPORT(invalid_func) {
-  GWI_OB(gwi_class_ini(gwi, "t_invalid_var_type", NULL))
+  GWI_B(gwi_class_ini(gwi, "t_invalid_var_type", NULL))
   GWI_B(gwi_func_ini(gwi, ".int", "i"))
   GWI_B(gwi_func_end(gwi, test_mfun, ae_flag_static))
 
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index bda333ee175c3ee2669fa033a837de18a3d14a17..58aa719a5b79c3ca250e296b12a42ea87a5db545 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(invalid_names) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T~", SZ_INT, NULL));
+  DECL_B(const Type, t0, = gwi_mk_type(gwi, "T~", SZ_INT, NULL));
   gwi_add_type(gwi, t0);
 
   const Type t1 = gwi_mk_type(gwi, "T,", SZ_INT, NULL);
@@ -23,5 +23,5 @@ GWION_IMPORT(invalid_names) {
   const Type t3 = gwi_mk_type(gwi, "T:[a]", SZ_INT, NULL);
   gwi_add_type(gwi, t3);
 
-  return GW_OK;
+  return true;
 }
index 7f138d54a6d08dc7a2fe6f28b0ff47875cdb4313..4fcb19c4b47f2b7f1f5a0a9bbfa0118087ca2b09 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(invalid_names0) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T~", SZ_INT, NULL));
+  DECL_B(const Type, t0, = gwi_mk_type(gwi, "T~", SZ_INT, NULL));
   gwi_add_type(gwi, t0);
-  return GW_OK;
+  return true;
 }
index f795e9f2c908410e8d31206809b28454774e1311..a4cd26358870390908af5b7860a045a943279400 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(invalid_names1) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T,", SZ_INT, NULL));
+  DECL_B(const Type, t0, = gwi_mk_type(gwi, "T,", SZ_INT, NULL));
   gwi_add_type(gwi, t0);
-  return GW_OK;
+  return true;
 }
index 19ff0d836f9c3705b7e18ae6ef598119347e16a5..9f32d959ede01eb5baa48219f9710379269e85c6 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(invalid_names2) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T<a>", SZ_INT, NULL));
+  DECL_B(const Type, t0, = gwi_mk_type(gwi, "T<a>", SZ_INT, NULL));
   gwi_add_type(gwi, t0);
-  return GW_OK;
+  return true;
 }
index 59426ea66e2dd61aec2a8c0fa909048a0d66b580..2c22c7f5a76b9f4038e3ad9f345ffa87392b3522 100644 (file)
@@ -11,7 +11,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(invalid_names3) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T:[a]", SZ_INT, NULL));
+  DECL_B(const Type, t0, = gwi_mk_type(gwi, "T:[a]", SZ_INT, NULL));
   gwi_add_type(gwi, t0);
-  return GW_OK;
+  return true;
 }
index c5041b0d0a10e79c1eb666f942642e06967c9f0f..0148638f502086283b40a903f44ba1d1acad8cf9 100644 (file)
@@ -9,9 +9,9 @@
 #include "import.h"
 
 GWION_IMPORT(invalid_type1) {
-  GWI_OB(gwi_class_ini(gwi, "invalid_var_type", NULL))
-  GWI_BB(gwi_item_ini(gwi, "i|nt", "test"))
-  GWI_BB(gwi_item_end(gwi, 0, num, 0))
+  GWI_B(gwi_class_ini(gwi, "invalid_var_type", NULL))
+  GWI_B(gwi_item_ini(gwi, "i|nt", "test"))
+  GWI_B(gwi_item_end(gwi, 0, num, 0))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 2505122837e75b9a4100cb0104e00afe254bae1c..0b5bcb8dd00ea70191f2b48c1d9d3853479155e1 100644 (file)
@@ -9,9 +9,9 @@
 #include "import.h"
 
 GWION_IMPORT(invalid_type2) {
-  GWI_OB(gwi_class_ini(gwi, "invalid_var_type", NULL))
-  GWI_BB(gwi_item_ini(gwi, ".int", "test"))
-  GWI_BB(gwi_item_end(gwi, 0, num, 0))
+  GWI_B(gwi_class_ini(gwi, "invalid_var_type", NULL))
+  GWI_B(gwi_item_ini(gwi, ".int", "test"))
+  GWI_B(gwi_item_end(gwi, 0, num, 0))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 884498e8d36a17eb1cdf261e6cf4d668b7e4a9b0..cb50af4d4aaac2a099308a1336743f9d4727016f 100644 (file)
@@ -9,9 +9,9 @@
 #include "import.h"
 
 GWION_IMPORT(invalid_type3) {
-  GWI_OB(gwi_class_ini(gwi, "InvalidVarType", NULL))
-  GWI_BB(gwi_item_ini(gwi, ".int", "test"))
-  GWI_BB(gwi_item_end(gwi, 0, num, 0))
+  GWI_B(gwi_class_ini(gwi, "InvalidVarType", NULL))
+  GWI_B(gwi_item_ini(gwi, ".int", "test"))
+  GWI_B(gwi_item_end(gwi, 0, num, 0))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index cd2dd528ab3d1aa26542ba4409d18b57fd417e89..a3bf4c9a3f8b6b6ec12b33601efc8c4ff8a9ca45 100644 (file)
@@ -12,7 +12,7 @@
 MFUN(test_mfun) {}
 GWION_IMPORT(mk_type_array) {
   Type t_invalid_var_name;
-  GWI_OB((t_invalid_var_name =
+  GWI_B((t_invalid_var_name =
               gwi_mk_type(gwi, "invalid_var_name", SZ_INT, "Object[]")))
-  return GW_OK;
+  return true;
 }
index 3837c3cf28976f88267c73758edf8adc3c5ce5f6..ab0282a880c4ff5a3d79c43971c044bb381e5910 100644 (file)
@@ -10,5 +10,5 @@
 
 GWION_IMPORT(not_importing) {
   GWI_B(gwi_enum_add(gwi, "adc", 0))
-  return GW_OK;
+  return true;
 }
index 2d320eb6e7f71bce39ad96b3a52896198ae2c8d6..a7b4afa770c016d3232480c8bad4a18bd4ae916b 100644 (file)
@@ -13,5 +13,5 @@ ANN static bool pass(Env nv NUSED, Ast *ast NUSED) { return true; }
 
 GWION_IMPORT(pass) {
   gwi_register_pass(gwi, "dummy", pass);
-  return GW_OK;
+  return true;
 }
index 762fc8faf54803ce3ec0a4fd094f8330d70f4370..fdbd12dea1ccbe665f20c86fbeb2afb7ad73d822 100644 (file)
@@ -21,5 +21,5 @@ GWION_IMPORT(specialid_emit) {
   struct SpecialId_ spid = {
       .type = gwi->gwion->type[et_int], .em = spidem, .is_const = 1};
   gwi_specialid(gwi, "testid", &spid);
-  return GW_OK;
+  return true;
 }
index 2f7d6f4600ca83b171d774cfe7b8c6ac2c22931e..04f7bcefff4b0882f4d87a431a7dc9407f097304 100644 (file)
@@ -13,7 +13,7 @@ GWION_IMPORT(static_string) {
   const M_Object o =
       new_object(gwi->gwion->mp, gwi->gwion->type[et_string]);
   STRING(o) = s_name(insert_symbol(gwi->gwion->st, "test static string"));
-  GWI_BB(gwi_item_ini(gwi, "string", "self"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_global, obj, o))
-  return GW_OK;
+  GWI_B(gwi_item_ini(gwi, "string", "self"))
+  GWI_B(gwi_item_end(gwi, ae_flag_global, obj, o))
+  return true;
 }
index 343ea77c38fed6f6baf9ce1fe2fa9f4869c0b39f..9b52fc46b46a79d16d6cde75efea74ce7222ad78 100644 (file)
 #include "gwi.h"
 
 GWION_IMPORT(str2decl) {
-  GWI_OB(gwi_class_ini(gwi, "Test", NULL))
-  GWI_OB(gwi_class_ini(gwi, "Child", NULL))
+  GWI_B(gwi_class_ini(gwi, "Test", NULL))
+  GWI_B(gwi_class_ini(gwi, "Child", NULL))
   GWI_B(gwi_class_end(gwi))
   GWI_B(gwi_class_end(gwi))
-  GWI_OB(gwi_class_ini(gwi, "Test2", "Test.Child"))
+  GWI_B(gwi_class_ini(gwi, "Test2", "Test.Child"))
   return gwi_class_end(gwi);
 }
index 0d3ad08dd1762a0ef5f7e4ad57f5adefd5b545ac..6194a074f0905e5ee5d0bd17a95a793976ea2e7d 100644 (file)
@@ -10,7 +10,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(str2list_fail) {
-  GWI_BB(gwi_item_ini(gwi, "SoemClass.child", "i"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, num, 0))
-  return GW_OK;
+  GWI_B(gwi_item_ini(gwi, "SoemClass.child", "i"))
+  GWI_B(gwi_item_end(gwi, ae_flag_none, num, 0))
+  return true;
 }
index 1cddd7aa57095072fb805298dc4c884fc9b0f14c..42f1a896ce912be32ff6c74757dc10b021c3a49e 100644 (file)
@@ -13,26 +13,26 @@ SFUN(coverage_int) { *(m_uint *)RETURN = 0; }
 SFUN(coverage_float) { *(m_float *)RETURN = 0; }
 
 GWION_IMPORT(struct) {
-  GWI_OB(gwi_struct_ini(gwi, "Struct"))
+  GWI_B(gwi_struct_ini(gwi, "Struct"))
   GWI_B(gwi_func_ini(gwi, "int", "i"))
   GWI_B(gwi_func_end(gwi, coverage_int, ae_flag_static))
   GWI_B(gwi_func_ini(gwi, "float", "f"))
   GWI_B(gwi_func_end(gwi, coverage_float, ae_flag_static))
 
-  GWI_BB(gwi_item_end(gwi, ae_flag_static, num, 5))
+  GWI_B(gwi_item_end(gwi, ae_flag_static, num, 5))
 
-  GWI_BB(gwi_item_ini(gwi, "int", "s_f"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static, fnum, 2.1))
+  GWI_B(gwi_item_ini(gwi, "int", "s_f"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static, fnum, 2.1))
 
-  GWI_BB(gwi_item_ini(gwi, "int", "sc_i"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static | ae_flag_const, num, 5))
+  GWI_B(gwi_item_ini(gwi, "int", "sc_i"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static | ae_flag_const, num, 5))
 
-  GWI_BB(gwi_item_ini(gwi, "float", "sc_f"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_static | ae_flag_const, fnum, 2.1))
+  GWI_B(gwi_item_ini(gwi, "float", "sc_f"))
+  GWI_B(gwi_item_end(gwi, ae_flag_static | ae_flag_const, fnum, 2.1))
 
-  GWI_BB(gwi_item_ini(gwi, "int[][]", "test_array"))
-  GWI_BB(gwi_item_end(gwi, ae_flag_none, obj, NULL))
+  GWI_B(gwi_item_ini(gwi, "int[][]", "test_array"))
+  GWI_B(gwi_item_end(gwi, ae_flag_none, obj, NULL))
 
   GWI_B(gwi_struct_end(gwi))
-  return GW_OK;
+  return true;
 }
index 0066599ad9217d7f46ec7bda9842cb11a549ee35..7219f6bfd89be6736698866332e2d2830820f1b2 100644 (file)
 
 static MFUN(template_arg_fun) {}
 GWION_IMPORT(template_arg) {
-  GWI_OB(gwi_class_ini(gwi, "TemplateArg", NULL))
+  GWI_B(gwi_class_ini(gwi, "TemplateArg", NULL))
   GWI_B(gwi_func_ini(gwi, "int", "set"))
   GWI_B(gwi_func_arg(gwi, "Pair<Ptr<int>,float>", "test"))
   GWI_B(gwi_func_end(gwi, template_arg_fun, ae_flag_none))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 69e48139ff9b804d547c5dde966ff490d8b39151..15a10b18d788a9d9e6b0cebb5cf87def0b856568 100644 (file)
@@ -23,11 +23,11 @@ static CTOR(trig2_ctor) {
 }
 
 GWION_IMPORT(trig) {
-  GWI_OB(gwi_class_ini(gwi, "Trig", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "Trig", "UGen"))
   gwi_class_xtor(gwi, trig_ctor, NULL);
   gwi_class_end(gwi);
 
-  GWI_OB(gwi_class_ini(gwi, "Trig2", "UGen"))
+  GWI_B(gwi_class_ini(gwi, "Trig2", "UGen"))
   gwi_class_xtor(gwi, trig2_ctor, NULL);
   return gwi_class_end(gwi);
 }
index 1f5257c80ac443561882b6b7546c7630c862567c..ad413ed044a73827841ae47853ea85855a11fd20 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(typedef) {
-  GWI_OB(gwi_typedef_ini(gwi, "int", "Typedef"))
-  GWI_OB(gwi_typedef_end(gwi, ae_flag_none))
-  return GW_OK;
+  GWI_B(gwi_typedef_ini(gwi, "int", "Typedef"))
+  GWI_B(gwi_typedef_end(gwi, ae_flag_none))
+  return true;
 }
index b3fb207df42a43eaca498e5a1157f1cfb860c260..a344f928fc7942869e634bf0373b3f397ab21d32 100644 (file)
@@ -11,5 +11,5 @@
 GWION_IMPORT(typedef_fail) {
   GWI_B(gwi_typedef_ini(gwi, "int", "Typedef:[A]"))
   GWI_B(gwi_typedef_ini(gwi, "int", "Typedef:[A]"))
-  return GW_OK;
+  return true;
 }
index b13fa4a1535d7c2adc10a01f3ff1d2e7a67c0e79..ab952826c232f8fd4e2238f8545aa7c59bc84fb5 100644 (file)
@@ -10,6 +10,6 @@
 
 GWION_IMPORT(typedef_tmpl) {
   GWI_B(gwi_typedef_ini(gwi, "Ptr:[A]", "Typedef:[A]"))
-  GWI_OB(gwi_typedef_end(gwi, ae_flag_none))
-  return GW_OK;
+  GWI_B(gwi_typedef_end(gwi, ae_flag_none))
+  return true;
 }
index 450102f0364856ed265eaea33118d367794b7c26..6b4b377424f6be7c5bcca6daf00df9903f6942ac 100644 (file)
@@ -15,5 +15,5 @@ GWION_IMPORT(ugen_connect) {
   const UGen ug1 = (UGen)vector_at(&gwi->gwion->vm->ugen, 1);
   ugen_connect(ug0, ug1);
   ugen_disconnect(ug0, ug1);
-  return GW_OK;
+  return true;
 }
index e6d63ea892197d1c581ea8d869dc582864451351..e9361a2712c7cdc45f2dec91a7713128ad5709de 100644 (file)
@@ -13,5 +13,5 @@ GWION_IMPORT(union) {
   GWI_B(gwi_union_add(gwi, "float", "f"))
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index c0d8dc21e9441273ad880aba700a51eee8c159f1..a33ab1148bd6f0d2605795bd496543561600c6cc 100644 (file)
@@ -13,5 +13,5 @@ GWION_IMPORT(union_fail_exp) {
   GWI_B(gwi_union_add(gwi, "Float", "f"))
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index 52982d70129ae9b4094f9638eb0037269d14f37d..c307ddc69c24e1f8b5de69be829d33b6df3edf8a 100644 (file)
@@ -9,11 +9,11 @@
 #include "import.h"
 
 GWION_IMPORT(union_member) {
-  GWI_OB(gwi_class_ini(gwi, "UnionMember", NULL))
+  GWI_B(gwi_class_ini(gwi, "UnionMember", NULL))
   GWI_B(gwi_union_ini(gwi, "U"))
   GWI_B(gwi_union_add(gwi, "float", "f"))
   GWI_B(gwi_union_add(gwi, "int[]", "array"))
   GWI_B(gwi_union_end(gwi, ae_flag_none))
   GWI_B(gwi_class_end(gwi))
-  return GW_OK;
+  return true;
 }
index 6581666ab6b965ee7e68a8bf10f3c7f91dfe0e22..4e6e26cfabdb9206479add4345cf68499c993262 100644 (file)
@@ -13,5 +13,5 @@ GWION_IMPORT(union_name) {
   GWI_B(gwi_union_add(gwi, "float", "f"))
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index aa63214782863e22822efb78c4de1b1169fade86..9e22605987283faec191e5fc528c348619ada1f0 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(union_tmpl) {
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_add(gwi, "A", "a"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index ed100d386493c8c4f3805bee5aa9e0d0ec45937c..a57b73e26f6a1ecb63748b8f5f315e8f75002468 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(union_tmpl_fail) {
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_add(gwi, "A", "a"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index 5f5f82dc4e518d599d0b261182f17bd84fc46ea7..7d965edcf2802c5917dff4916a73adffe8a3f58e 100644 (file)
@@ -15,5 +15,5 @@ GWION_IMPORT(union_tmpl_fail2) {
   GWI_B(gwi_union_add(gwi, "A", "a"))
   GWI_B(gwi_union_ini(gwi, "U:[A]"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index 32f2b09f4cc14d0f85146f38f32e1a2df2aba163..feeef915339967c786a2abc7ca9352ee4be1d39a 100644 (file)
@@ -14,5 +14,5 @@ GWION_IMPORT(union_tmpl_fail3) {
   GWI_B(gwi_union_add(gwi, "int", "i"))
   GWI_B(gwi_union_add(gwi, "A", "a"))
   GWI_B(gwi_union_end(gwi, 0))
-  return GW_OK;
+  return true;
 }
index 30348102074bdf68e88664ca8b73658e96fca923..5548c1473b2f83d925ecf8ee656ce982ef98baf5 100644 (file)
@@ -15,5 +15,5 @@ GWION_IMPORT(vm_remove) {
   GWI_B(gwi_func_ini(gwi, "int", "test"))
   GWI_B(gwi_func_arg(gwi, "int", "i"))
   GWI_B(gwi_func_end(gwi, coverage_int, ae_flag_none))
-  return GW_OK;
+  return true;
 }
diff --git a/util b/util
index 373c31f93cc54f6dd0f04dee5b685bb8f73d4a88..40579aff6f25a637d6d0da8032700e85b1611cb0 160000 (submodule)
--- a/util
+++ b/util
@@ -1 +1 @@
-Subproject commit 373c31f93cc54f6dd0f04dee5b685bb8f73d4a88
+Subproject commit 40579aff6f25a637d6d0da8032700e85b1611cb0