65 if (
p_args == NULL) {
if (slot) *slot = NULL;
continue; }
112 if (
p_args == NULL) {
if (slot) *slot = NULL;
continue; }
static void x_obj_t int int i
Definition x-prim.h:60
x_spair_t roots[2]
Definition x-prim.h:99
static void __attribute__((unused)) x_args(x_obj_t *p_base
static void x_obj_t int count
Definition x-prim.h:57
x_obj_t ** p_cell
Definition x-prim.h:92
int held
Definition x-prim.h:91
static void x_obj_t * p_args
Definition x-prim.h:56
x_heap_root_push(p_cell, roots[0])
void x_value_bind(x_obj_t *p_base, x_char_t *name, x_obj_t *p_val)
Definition x-prim.c:66
void x_callable_bind(x_obj_t *p_base, x_char_t *name, x_fn_t fn)
Definition x-prim.c:49
void x_callable_bind_table(x_obj_t *p_base, const x_callable_entry_t *table, int count)
Definition x-prim.c:95
void x_prims_bind_table(x_obj_t *p_base, const x_prim_entry_t *table, int count)
Definition x-prim.c:253
x_obj_t * x_prims(x_obj_t *p_base)
Definition x-prim.c:116
x_obj_t * x_prim_signal_register(x_obj_t *p_base, x_obj_t *p_args)
Definition signal.c:81
x_fn_t fn
Definition x-prim.h:146
x_char_t * name
Definition x-prim.h:145
x_char_t * method
Definition x-prim.h:185
x_fn_t fn
Definition x-prim.h:183
x_char_t * ns
Definition x-prim.h:184
x_char_t * name
Definition x-prim.h:182
void x_eval_spine_guard(x_obj_t *p_base, x_obj_t *p_obj)
Definition x-eval.c:354
x_obj_t * x_eval_arg(x_obj_t *p_base, x_obj_t *p_arg)
Definition x-eval.c:310
Evaluator object and interface – x-expr's base object plus the environment, control-flow,...
Heap management and mark-sweep garbage collection.
The x-expr object system – atoms, pairs, flags, and type dispatch.
@ X_OBJ_FLAG_NONE
Definition x-obj.h:129
#define x_obj_data_i(X, I)
Definition x-obj.h:330
#define x_obj_set(T, F,...)
Definition x-obj.h:342
x_obj_t *(* x_fn_t)(x_obj_t *p_base, x_obj_t *p_args)
Definition x-obj.h:197
#define x_firstobj(X)
Definition x-obj.h:414
x_satom_t x_type_pair_obj
Definition x-obj.c:32
x_obj_t x_spair_t[X_OBJ_META_LEN+X_OBJ_UNITS_PAIR]
Definition x-obj.h:286
#define x_restobj(X)
Definition x-obj.h:435
x_obj_t * x_prim_arith_register(x_obj_t *p_base, x_obj_t *p_args)
Definition arith.c:245
x_obj_t * x_prim_base_register(x_obj_t *p_base, x_obj_t *p_args)
Definition base.c:343
x_obj_t * x_prim_pred_register(x_obj_t *p_base, x_obj_t *p_args)
Definition pred.c:140
x_obj_t * x_prim_ffi_register(x_obj_t *p_base, x_obj_t *p_args)
Register all FFI primitives and platform constants.
Definition ffi.c:1084
x_obj_t * x_prim_type_build_struct(x_obj_t *p_base, x_obj_t *p_name_atom, x_obj_t *p_handlers)
Build a type struct from a handlers alist.
Definition type.c:61
x_obj_t * x_prim_heap_register(x_obj_t *p_base, x_obj_t *p_args)
Definition heap.c:371
x_obj_t * x_prim_io_register(x_obj_t *p_base, x_obj_t *p_args)
Definition io.c:223
x_obj_t * x_prim_op1(x_obj_t *p_base, x_obj_t *p_args, x_obj_t *(*op)(x_obj_t *, x_obj_t *))
Definition type.c:319
x_obj_t * x_prim_callcc_register(x_obj_t *p_base, x_obj_t *p_args)
Definition callcc.c:359
x_obj_t * x_prim_image_register(x_obj_t *p_base, x_obj_t *p_args)
Definition image.c:907
x_obj_t * x_prim_register(x_obj_t *p_base, x_obj_t *p_args)
Definition x-prim.c:286
void x_callcc_init(void)
Definition callcc.c:104
x_obj_t * x_prim_core_register(x_obj_t *p_base, x_obj_t *p_args)
Definition core.c:337
x_obj_t * x_prim_repl(x_obj_t *p_base, x_obj_t *p_args)
Definition io.c:148
x_obj_t * x_prim_type_register(x_obj_t *p_base, x_obj_t *p_args)
Register all type-system and sandboxing primitives.
Definition type.c:352
x_obj_t * x_prim_string_register(x_obj_t *p_base, x_obj_t *p_args)
Definition string.c:215
x_obj_t * x_prim_iter_register(x_obj_t *p_base, x_obj_t *p_args)
Definition iter.c:68
x_obj_t * x_prim_buffer_register(x_obj_t *p_base, x_obj_t *p_args)
Definition buffer.c:262
char x_char_t
Definition x.h:138