aboutsummaryrefslogtreecommitdiff
path: root/src/builtins.c
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-06-23 00:09:54 +0800
committerMistivia <i@mistivia.com>2025-06-23 00:12:58 +0800
commit957175b7f1bff57477ccd000c956bcbe06d159cf (patch)
tree73d5a368eda556dd56af0d89a40c97befd8084ff /src/builtins.c
parent89f144d3ab27e54f7ad8cbf393418a3baa169f0f (diff)
test with intensive gc
Diffstat (limited to 'src/builtins.c')
-rw-r--r--src/builtins.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/builtins.c b/src/builtins.c
index 98252f8..fe14b8f 100644
--- a/src/builtins.c
+++ b/src/builtins.c
@@ -6,6 +6,14 @@
#include <float.h>
#include <math.h>
+SExpRef builtin_alwaysgc(Interp *interp, SExpRef args) {
+ if (LENGTH(args) != 1) return new_error(interp, "_alwaysgc: arg num error.\n");
+ SExpRef arg = CAR(args);
+ if (VALTYPE(arg) != kBooleanSExp) return new_error(interp, "alwaysgc: type error.\n");
+ interp->alwaysgc = REF(arg)->boolean;
+ return NIL;
+}
+
SExpRef builtin_symbol2string(Interp *interp, SExpRef args) {
if (LENGTH(args) != 1) return new_error(interp, "symbol->string: arg num error.\n");
SExpRef arg = CAR(args);
@@ -601,6 +609,7 @@ SExpRef builtin_num_equal(Interp *interp, SExpRef args) {
}
}
+
SExpRef builtin_num_neq(Interp *interp, SExpRef args) {
int args_len = LENGTH(args);
if (args_len != 2) return new_error(interp, "/=: wrong argument number.\n");