fixes to run stdlib tests and tutorial tests. No unexpected exits on these tests (without output checkings). + remove som e leftovers from stdlib closure coding + bug fixes

This commit is contained in:
ProgramSnail 2025-04-12 17:09:02 +03:00
parent 467eeb0eef
commit 4d7afdeae0
10 changed files with 84 additions and 51 deletions

View file

@ -54,15 +54,17 @@ enum BUILTIN : uint {
//
BUILTIN_LkindOf, // 39
BUILTIN_LcompareTags, // 40
BUILTIN_Ls__Infix_58, // 41
//
#define BUILTIN_NAME(name) BUILTIN_##name,
FORALL_BINOP_FUNC(BUILTIN_NAME)
#undef BUILTIN_NAME
//
BUILTIN_Barray, // 41+14 // can't be run with run_stdlib_func
BUILTIN_NONE, // 42+14
BUILTIN_Barray, // 42+14 // can't be run with run_stdlib_func
BUILTIN_NONE, // 43+14
};
enum BUILTIN id_by_builtin(const char *name);
bool is_builtin_with_ret(enum BUILTIN id);
void run_stdlib_func(enum BUILTIN id, size_t args_count);

View file

@ -19,9 +19,7 @@
DEF(CMD_BINOP_AND, &&) \
DEF(CMD_BINOP_OR, ||)
// NOTE: includes additional ':' operator
#define FORALL_BINOP_FUNC(DEF) \
DEF(Ls__Infix_58) \
DEF(Ls__Infix_3333) \
DEF(Ls__Infix_3838) \
DEF(Ls__Infix_6161) \

View file

@ -25,7 +25,7 @@ aint LkindOf(void *p);
aint LcompareTags(void *p, void *q);
// Functional synonym for built-in operator ":";
void *Ls__Infix_58(void *p, void *q);
void *Ls__Infix_58(void **args);
// Functional synonym for built-in operator "!!";
aint Ls__Infix_3333(void *p, void *q);