|
@@ -6,7 +6,7 @@
|
|
#include <gc.h>
|
|
#include <gc.h>
|
|
#include <pthread.h>
|
|
#include <pthread.h>
|
|
|
|
|
|
-static bool __debug_enabled = false;
|
|
|
|
|
|
+static qi_bool __debug_enabled = false;
|
|
static pthread_t __main_tid;
|
|
static pthread_t __main_tid;
|
|
|
|
|
|
void *qi_malloc(qi_size_t size) {
|
|
void *qi_malloc(qi_size_t size) {
|
|
@@ -100,7 +100,7 @@ qi_list_t *qi_list_push(qi_list_t *list, void *value) {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_list_insert(qi_list_t *list, qi_ssize_t index, void *value) {
|
|
|
|
|
|
+qi_bool qi_list_insert(qi_list_t *list, qi_ssize_t index, void *value) {
|
|
if (index == -1) {
|
|
if (index == -1) {
|
|
qi_list_push(list, value);
|
|
qi_list_push(list, value);
|
|
|
|
|
|
@@ -123,7 +123,7 @@ bool qi_list_insert(qi_list_t *list, qi_ssize_t index, void *value) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_list_delete(qi_list_t *list, qi_ssize_t index) {
|
|
|
|
|
|
+qi_bool qi_list_delete(qi_list_t *list, qi_ssize_t index) {
|
|
if (qi_list_empty(list))
|
|
if (qi_list_empty(list))
|
|
return false;
|
|
return false;
|
|
|
|
|
|
@@ -149,7 +149,7 @@ bool qi_list_delete(qi_list_t *list, qi_ssize_t index) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_list_set(qi_list_t *list, qi_ssize_t index, void *value) {
|
|
|
|
|
|
+qi_bool qi_list_set(qi_list_t *list, qi_ssize_t index, void *value) {
|
|
qi_size_t length = qi_list_length(list);
|
|
qi_size_t length = qi_list_length(list);
|
|
|
|
|
|
if (index < 0)
|
|
if (index < 0)
|
|
@@ -180,7 +180,7 @@ void *qi_list_pop(qi_list_t *list) {
|
|
return value;
|
|
return value;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_list_contains(qi_list_t *list, void *value) {
|
|
|
|
|
|
+qi_bool qi_list_contains(qi_list_t *list, void *value) {
|
|
if (qi_list_empty(list))
|
|
if (qi_list_empty(list))
|
|
return false;
|
|
return false;
|
|
|
|
|
|
@@ -370,7 +370,7 @@ void *qi_table_get(qi_table_t *table, char *key) {
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_table_has(qi_table_t *table, char *key) {
|
|
|
|
|
|
+qi_bool qi_table_has(qi_table_t *table, char *key) {
|
|
if (qi_table_empty(table))
|
|
if (qi_table_empty(table))
|
|
return false;
|
|
return false;
|
|
|
|
|
|
@@ -467,7 +467,7 @@ qi_list_t *qi_table_keys(qi_table_t *table) {
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_table_delete(qi_table_t *table, char *key) {
|
|
|
|
|
|
+qi_bool qi_table_delete(qi_table_t *table, char *key) {
|
|
uint64_t hash = MM86128(key, strlen(key), QI_HASH_SEED);
|
|
uint64_t hash = MM86128(key, strlen(key), QI_HASH_SEED);
|
|
qi_size_t index = hash % table->capacity;
|
|
qi_size_t index = hash % table->capacity;
|
|
|
|
|
|
@@ -610,7 +610,7 @@ static void qi_scope_run_defers(qi_state_t *state, qi_scope_t *scope) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-static bool _qi_old_scope(qi_state_t *state, bool ignore_barriers) {
|
|
|
|
|
|
+static qi_bool _qi_old_scope(qi_state_t *state, qi_bool ignore_barriers) {
|
|
qi_scope_t *scope;
|
|
qi_scope_t *scope;
|
|
|
|
|
|
if (qi_list_empty(state->scopes))
|
|
if (qi_list_empty(state->scopes))
|
|
@@ -627,11 +627,11 @@ static bool _qi_old_scope(qi_state_t *state, bool ignore_barriers) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_old_scope(qi_state_t *state) {
|
|
|
|
|
|
+qi_bool qi_old_scope(qi_state_t *state) {
|
|
return _qi_old_scope(state, false);
|
|
return _qi_old_scope(state, false);
|
|
}
|
|
}
|
|
|
|
|
|
-qi_value_t *qi_call_meta(qi_state_t *state, bool *fail_flag, qi_value_t *value,
|
|
|
|
|
|
+qi_value_t *qi_call_meta(qi_state_t *state, qi_bool *fail_flag, qi_value_t *value,
|
|
char *name, qi_size_t count, ...);
|
|
char *name, qi_size_t count, ...);
|
|
|
|
|
|
void qi_value_finalizer(GC_PTR _value, GC_PTR _state) {
|
|
void qi_value_finalizer(GC_PTR _value, GC_PTR _state) {
|
|
@@ -879,7 +879,7 @@ qi_value_t *qi_get_method(qi_state_t *state, qi_value_t *value, char *name) {
|
|
return method;
|
|
return method;
|
|
}
|
|
}
|
|
|
|
|
|
-qi_value_t *qi_call_meta(qi_state_t *state, bool *fail_flag, qi_value_t *value,
|
|
|
|
|
|
+qi_value_t *qi_call_meta(qi_state_t *state, qi_bool *fail_flag, qi_value_t *value,
|
|
char *name, qi_size_t count, ...) {
|
|
char *name, qi_size_t count, ...) {
|
|
qi_value_t *meta = qi_get_method(state, value, name);
|
|
qi_value_t *meta = qi_get_method(state, value, name);
|
|
if (!meta)
|
|
if (!meta)
|
|
@@ -949,10 +949,10 @@ char *_qi_type(qi_state_t *state, qi_value_t *value) {
|
|
}
|
|
}
|
|
|
|
|
|
char *_qi_repr(qi_state_t *state, qi_list_t *tempstack, qi_value_t *value,
|
|
char *_qi_repr(qi_state_t *state, qi_list_t *tempstack, qi_value_t *value,
|
|
- bool quote) {
|
|
|
|
|
|
+ qi_bool quote) {
|
|
char string[128];
|
|
char string[128];
|
|
qi_buffer_t *buffer;
|
|
qi_buffer_t *buffer;
|
|
- bool flag;
|
|
|
|
|
|
+ qi_bool flag;
|
|
|
|
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
if ((meta = qi_call_meta(state, NULL, value, quote ? "__repr" : "__str", 1,
|
|
if ((meta = qi_call_meta(state, NULL, value, quote ? "__repr" : "__str", 1,
|
|
@@ -1397,7 +1397,7 @@ qi_value_t *qi_get(qi_state_t *state, char *name) {
|
|
}
|
|
}
|
|
|
|
|
|
static void _qi_decl(qi_state_t *state, char *name, qi_value_t *value,
|
|
static void _qi_decl(qi_state_t *state, char *name, qi_value_t *value,
|
|
- bool is_constant) {
|
|
|
|
|
|
+ qi_bool is_constant) {
|
|
qi_scope_t *scope = qi_list_last(state->scopes);
|
|
qi_scope_t *scope = qi_list_last(state->scopes);
|
|
qi_symbol_t *symbol;
|
|
qi_symbol_t *symbol;
|
|
|
|
|
|
@@ -1432,7 +1432,7 @@ void qi_decl(qi_state_t *state, char *name, qi_value_t *value) {
|
|
_qi_decl(state, name, value, false);
|
|
_qi_decl(state, name, value, false);
|
|
}
|
|
}
|
|
|
|
|
|
-qi_value_t *_qi_set(qi_state_t *state, bool is_pf, bool is_constant,
|
|
|
|
|
|
+qi_value_t *_qi_set(qi_state_t *state, qi_bool is_pf, qi_bool is_constant,
|
|
char *name, qi_value_t *value) {
|
|
char *name, qi_value_t *value) {
|
|
qi_ssize_t scopes_count = qi_list_length(state->scopes);
|
|
qi_ssize_t scopes_count = qi_list_length(state->scopes);
|
|
|
|
|
|
@@ -1483,7 +1483,7 @@ qi_value_t *_qi_set(qi_state_t *state, bool is_pf, bool is_constant,
|
|
|
|
|
|
size_t _qi_length(qi_state_t *state, qi_value_t *value) {
|
|
size_t _qi_length(qi_state_t *state, qi_value_t *value) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, value, "__len", 1, value))) {
|
|
if ((meta = qi_call_meta(state, &fail, value, "__len", 1, value))) {
|
|
if (meta->type != QI_NUMBER)
|
|
if (meta->type != QI_NUMBER)
|
|
@@ -1538,7 +1538,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_del(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
qi_value_t *qi_del(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, value, "__del", 2, value, index)))
|
|
if ((meta = qi_call_meta(state, &fail, value, "__del", 2, value, index)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -1548,7 +1548,7 @@ qi_value_t *qi_del(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
switch (value->type) {
|
|
switch (value->type) {
|
|
case QI_LIST:
|
|
case QI_LIST:
|
|
if (index->type == QI_NUMBER) {
|
|
if (index->type == QI_NUMBER) {
|
|
- bool res;
|
|
|
|
|
|
+ qi_bool res;
|
|
|
|
|
|
LOCKED(value, {
|
|
LOCKED(value, {
|
|
res = qi_list_delete(value->value.list, index->value.number);
|
|
res = qi_list_delete(value->value.list, index->value.number);
|
|
@@ -1564,7 +1564,7 @@ qi_value_t *qi_del(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
|
|
|
|
case QI_TABLE:
|
|
case QI_TABLE:
|
|
if (index->type == QI_STRING) {
|
|
if (index->type == QI_STRING) {
|
|
- bool res;
|
|
|
|
|
|
+ qi_bool res;
|
|
|
|
|
|
LOCKED(value, {
|
|
LOCKED(value, {
|
|
res = qi_table_delete(value->value.table.table, index->value.string);
|
|
res = qi_table_delete(value->value.table.table, index->value.string);
|
|
@@ -1588,11 +1588,11 @@ leave:
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-bool _qi_truthy(qi_state_t *state, qi_value_t *value) {
|
|
|
|
|
|
+qi_bool _qi_truthy(qi_state_t *state, qi_value_t *value) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
if ((meta = qi_call_meta(state, NULL, value, "__bool", 1, value))) {
|
|
if ((meta = qi_call_meta(state, NULL, value, "__bool", 1, value))) {
|
|
if (meta->type != QI_BOOLEAN)
|
|
if (meta->type != QI_BOOLEAN)
|
|
- qi_throw_format(state, "__bool returned non-boolean value (%s)",
|
|
|
|
|
|
+ qi_throw_format(state, "__qi_bool returned non-boolean value (%s)",
|
|
_qi_type(state, meta));
|
|
_qi_type(state, meta));
|
|
|
|
|
|
return meta->value.boolean;
|
|
return meta->value.boolean;
|
|
@@ -1626,7 +1626,7 @@ qi_value_t *qi_cast(qi_state_t *state, qi_type_t type, qi_value_t *value) {
|
|
if (value->type == type)
|
|
if (value->type == type)
|
|
return value;
|
|
return value;
|
|
|
|
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
switch (type) {
|
|
switch (type) {
|
|
case QI_BOOLEAN:
|
|
case QI_BOOLEAN:
|
|
@@ -1909,7 +1909,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_iter(qi_state_t *state, qi_value_t *value) {
|
|
qi_value_t *qi_iter(qi_state_t *state, qi_value_t *value) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, value, "__iter", 1, value)))
|
|
if ((meta = qi_call_meta(state, &fail, value, "__iter", 1, value)))
|
|
return qi_iter(state, meta);
|
|
return qi_iter(state, meta);
|
|
|
|
|
|
@@ -1921,7 +1921,7 @@ qi_value_t *qi_iter(qi_state_t *state, qi_value_t *value) {
|
|
|
|
|
|
qi_value_t *qi_index(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
qi_value_t *qi_index(qi_state_t *state, qi_value_t *value, qi_value_t *index) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if (index->type == QI_STRING &&
|
|
if (index->type == QI_STRING &&
|
|
(meta = qi_get_method(state, value, index->value.string))) {
|
|
(meta = qi_get_method(state, value, index->value.string))) {
|
|
if (meta->type == QI_FUNCTION && !meta->value.function.is_builtin) {
|
|
if (meta->type == QI_FUNCTION && !meta->value.function.is_builtin) {
|
|
@@ -2035,10 +2035,10 @@ leave:
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-qi_value_t *qi_index_set(qi_state_t *state, bool is_pf, qi_value_t *value,
|
|
|
|
|
|
+qi_value_t *qi_index_set(qi_state_t *state, qi_bool is_pf, qi_value_t *value,
|
|
qi_value_t *index, qi_value_t *newvalue) {
|
|
qi_value_t *index, qi_value_t *newvalue) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, value, "__index_set", 3, value, index,
|
|
if ((meta = qi_call_meta(state, &fail, value, "__index_set", 3, value, index,
|
|
newvalue)))
|
|
newvalue)))
|
|
@@ -2170,7 +2170,7 @@ qi_value_t *qi_call_debug(qi_state_t *state, qi_value_t *value,
|
|
return _qi_call(state, value, pargs, debug_data);
|
|
return _qi_call(state, value, pargs, debug_data);
|
|
}
|
|
}
|
|
|
|
|
|
-bool _qi_equals(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
|
|
|
|
+qi_bool _qi_equals(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
if ((meta = qi_call_meta(state, NULL, a, "__equals", 2, a, b))) {
|
|
if ((meta = qi_call_meta(state, NULL, a, "__equals", 2, a, b))) {
|
|
if (meta->type != QI_BOOLEAN)
|
|
if (meta->type != QI_BOOLEAN)
|
|
@@ -2318,9 +2318,9 @@ bool _qi_equals(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-bool _qi_in(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
|
|
|
|
+qi_bool _qi_in(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, b, "__in", 2, b, a))) {
|
|
if ((meta = qi_call_meta(state, &fail, b, "__in", 2, b, a))) {
|
|
if (meta->type != QI_BOOLEAN)
|
|
if (meta->type != QI_BOOLEAN)
|
|
@@ -2372,7 +2372,7 @@ bool _qi_in(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
|
|
|
|
return false;
|
|
return false;
|
|
} else if (a->type == QI_STRING && b->type == QI_TABLE) {
|
|
} else if (a->type == QI_STRING && b->type == QI_TABLE) {
|
|
- bool res = false;
|
|
|
|
|
|
+ qi_bool res = false;
|
|
|
|
|
|
LOCKED(b, {
|
|
LOCKED(b, {
|
|
qi_table_t *table = b->value.table.table;
|
|
qi_table_t *table = b->value.table.table;
|
|
@@ -2393,7 +2393,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_add(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_add(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__add", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__add", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2496,7 +2496,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_sub(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_sub(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__sub", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__sub", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2516,7 +2516,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_mul(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_mul(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__mul", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__mul", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2540,7 +2540,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_div(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_div(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__div", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__div", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2568,7 +2568,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_idiv(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_idiv(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__idiv", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__idiv", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2596,7 +2596,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_mod(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_mod(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__mod", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__mod", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2623,7 +2623,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_pow(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_pow(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__pow", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__pow", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2642,7 +2642,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_band(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_band(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__band", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__band", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2667,7 +2667,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_bor(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_bor(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__bor", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__bor", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2692,7 +2692,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_xor(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_xor(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
|
|
|
|
if ((meta = qi_call_meta(state, &fail, a, "__xor", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__xor", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
@@ -2717,7 +2717,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_shl(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_shl(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__shl", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__shl", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2737,7 +2737,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_shr(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *qi_shr(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__shr", 2, a, b)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__shr", 2, a, b)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2755,9 +2755,9 @@ leave:
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-bool _qi_lt(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
|
|
|
|
+qi_bool _qi_lt(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__lt", 2, a, b))) {
|
|
if ((meta = qi_call_meta(state, &fail, a, "__lt", 2, a, b))) {
|
|
if (meta->type != QI_BOOLEAN)
|
|
if (meta->type != QI_BOOLEAN)
|
|
qi_throw_format(state, "__lt returned non-boolean value (%s)",
|
|
qi_throw_format(state, "__lt returned non-boolean value (%s)",
|
|
@@ -2782,9 +2782,9 @@ leave:
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
-bool _qi_gt(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
|
|
|
|
+qi_bool _qi_gt(qi_state_t *state, qi_value_t *a, qi_value_t *b) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__gt", 2, a, b))) {
|
|
if ((meta = qi_call_meta(state, &fail, a, "__gt", 2, a, b))) {
|
|
if (meta->type != QI_BOOLEAN)
|
|
if (meta->type != QI_BOOLEAN)
|
|
qi_throw_format(state, "__gt returned non-boolean value (%s)",
|
|
qi_throw_format(state, "__gt returned non-boolean value (%s)",
|
|
@@ -2811,7 +2811,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_negate(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *qi_negate(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__negate", 1, a)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__negate", 1, a)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2830,7 +2830,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_unary_plus(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *qi_unary_plus(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__unary_plus", 1, a)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__unary_plus", 1, a)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2849,7 +2849,7 @@ leave:
|
|
|
|
|
|
qi_value_t *qi_bnot(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *qi_bnot(qi_state_t *state, qi_value_t *a) {
|
|
qi_value_t *meta;
|
|
qi_value_t *meta;
|
|
- bool fail = false;
|
|
|
|
|
|
+ qi_bool fail = false;
|
|
if ((meta = qi_call_meta(state, &fail, a, "__bnot", 1, a)))
|
|
if ((meta = qi_call_meta(state, &fail, a, "__bnot", 1, a)))
|
|
return meta;
|
|
return meta;
|
|
|
|
|
|
@@ -2937,7 +2937,7 @@ void qi_thread_exit(qi_state_t *state, qi_value_t *value) {
|
|
pthread_exit(NULL);
|
|
pthread_exit(NULL);
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_thread_main(void) { return pthread_self() == __main_tid; }
|
|
|
|
|
|
+qi_bool qi_thread_main(void) { return pthread_self() == __main_tid; }
|
|
|
|
|
|
qi_value_t *qi_thread_join(qi_state_t *state, void *_td) {
|
|
qi_value_t *qi_thread_join(qi_state_t *state, void *_td) {
|
|
pthread_t *td = (pthread_t *)_td;
|
|
pthread_t *td = (pthread_t *)_td;
|
|
@@ -2969,7 +2969,7 @@ void qi_mutex_lock(void *mutex) {
|
|
pthread_mutex_lock((pthread_mutex_t *)mutex);
|
|
pthread_mutex_lock((pthread_mutex_t *)mutex);
|
|
}
|
|
}
|
|
|
|
|
|
-bool qi_mutex_trylock(void *mutex) {
|
|
|
|
|
|
+qi_bool qi_mutex_trylock(void *mutex) {
|
|
if (pthread_mutex_trylock((pthread_mutex_t *)mutex) == 0)
|
|
if (pthread_mutex_trylock((pthread_mutex_t *)mutex) == 0)
|
|
return true;
|
|
return true;
|
|
|
|
|
|
@@ -3007,7 +3007,7 @@ void qi_cond_broadcast(void *cond) {
|
|
|
|
|
|
qi_value_t *qi_builtin_print(qi_state_t *state, qi_size_t pargc,
|
|
qi_value_t *qi_builtin_print(qi_state_t *state, qi_size_t pargc,
|
|
qi_list_t *pargs) {
|
|
qi_list_t *pargs) {
|
|
- bool first = true;
|
|
|
|
|
|
+ qi_bool first = true;
|
|
|
|
|
|
for (int i = 0; i < pargc; i++) {
|
|
for (int i = 0; i < pargc; i++) {
|
|
qi_value_t *a = qi_list_data(pargs, i);
|
|
qi_value_t *a = qi_list_data(pargs, i);
|
|
@@ -3073,7 +3073,7 @@ qi_value_t *qi_builtin_has_meta_table(qi_state_t *state, qi_size_t pargc,
|
|
qi_throw_format(state, "expected first argument to be: table, but got: %s",
|
|
qi_throw_format(state, "expected first argument to be: table, but got: %s",
|
|
_qi_type(state, a));
|
|
_qi_type(state, a));
|
|
|
|
|
|
- bool res = false;
|
|
|
|
|
|
+ qi_bool res = false;
|
|
|
|
|
|
LOCKED(a, { res = qi_has_metatable(a); });
|
|
LOCKED(a, { res = qi_has_metatable(a); });
|
|
|
|
|
|
@@ -3108,7 +3108,7 @@ qi_value_t *qi_builtin_has_method(qi_state_t *state, qi_size_t pargc,
|
|
_qi_type(state, b));
|
|
_qi_type(state, b));
|
|
|
|
|
|
qi_value_t *value;
|
|
qi_value_t *value;
|
|
- bool res = false;
|
|
|
|
|
|
+ qi_bool res = false;
|
|
|
|
|
|
LOCKED(a, {
|
|
LOCKED(a, {
|
|
res =
|
|
res =
|
|
@@ -3183,7 +3183,7 @@ qi_value_t *qi_builtin_has_pseudomethod(qi_state_t *state, qi_size_t pargc,
|
|
|
|
|
|
qi_mutex_lock(state->pseudomethods_mutex);
|
|
qi_mutex_lock(state->pseudomethods_mutex);
|
|
|
|
|
|
- bool res = qi_table_has(state->pseudomethods, a->value.string);
|
|
|
|
|
|
+ qi_bool res = qi_table_has(state->pseudomethods, a->value.string);
|
|
|
|
|
|
qi_mutex_unlock(state->pseudomethods_mutex);
|
|
qi_mutex_unlock(state->pseudomethods_mutex);
|
|
|
|
|
|
@@ -3200,7 +3200,7 @@ qi_value_t *qi_builtin_unset_pseudomethod(qi_state_t *state, qi_size_t pargc,
|
|
|
|
|
|
qi_mutex_lock(state->pseudomethods_mutex);
|
|
qi_mutex_lock(state->pseudomethods_mutex);
|
|
|
|
|
|
- bool res = qi_table_delete(state->pseudomethods, a->value.string);
|
|
|
|
|
|
+ qi_bool res = qi_table_delete(state->pseudomethods, a->value.string);
|
|
|
|
|
|
qi_mutex_unlock(state->pseudomethods_mutex);
|
|
qi_mutex_unlock(state->pseudomethods_mutex);
|
|
|
|
|
|
@@ -3708,7 +3708,7 @@ qi_value_t *qi_builtin_list_insert(qi_state_t *state, qi_size_t pargc,
|
|
"expected second argument to be: number, but got: %s",
|
|
"expected second argument to be: number, but got: %s",
|
|
_qi_type(state, b));
|
|
_qi_type(state, b));
|
|
|
|
|
|
- bool res = false;
|
|
|
|
|
|
+ qi_bool res = false;
|
|
|
|
|
|
LOCKED(a,
|
|
LOCKED(a,
|
|
{ res = qi_list_insert(a->value.list, b->value.number, c); });
|
|
{ res = qi_list_insert(a->value.list, b->value.number, c); });
|
|
@@ -4146,7 +4146,7 @@ static void qi_state_setup(qi_state_t *state) {
|
|
qi_init_std(state);
|
|
qi_init_std(state);
|
|
}
|
|
}
|
|
|
|
|
|
-static void _qi_state_init(qi_state_t **state, bool enable_debug) {
|
|
|
|
|
|
+static void _qi_state_init(qi_state_t **state, qi_bool enable_debug) {
|
|
GC_INIT();
|
|
GC_INIT();
|
|
GC_set_java_finalization(1);
|
|
GC_set_java_finalization(1);
|
|
*state = qi_malloc(sizeof(qi_state_t));
|
|
*state = qi_malloc(sizeof(qi_state_t));
|