From 6463cae89cb63b4a9488cf9bb9dcd1ce0a7ba28e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Tue, 9 Apr 2024 14:16:37 +0200 Subject: [PATCH] stacks: rename bindings and runtime stack pointers stored in frs They are named to follow the same convention hinting that it is an index, not a pointer. --- src/c/compiler.d | 6 +++--- src/c/ffi.d | 2 +- src/c/interpreter.d | 2 +- src/c/stacks.d | 16 ++++++++-------- src/h/external.h | 2 +- src/h/stacks.h | 8 ++++---- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/c/compiler.d b/src/c/compiler.d index f3c054576..cce49e626 100644 --- a/src/c/compiler.d +++ b/src/c/compiler.d @@ -211,7 +211,7 @@ asm_op(cl_env_ptr env, cl_fixnum code) { static void asm_clear(cl_env_ptr env, cl_index h) { - ECL_STACK_SET_INDEX(env, h); + ECL_STACK_UNWIND(env, h); } static void @@ -1446,7 +1446,7 @@ c_catch(cl_env_ptr env, cl_object args, int flags) { static int c_compiler_let(cl_env_ptr env, cl_object args, int flags) { cl_object bindings; - cl_index old_bds_top_index = env->bds_stack.top - env->bds_stack.org; + cl_index old_bds_ndx = env->bds_stack.top - env->bds_stack.org; for (bindings = pop(&args); !Null(bindings); ) { cl_object form = pop(&bindings); @@ -1455,7 +1455,7 @@ c_compiler_let(cl_env_ptr env, cl_object args, int flags) { ecl_bds_bind(env, var, value); } flags = compile_toplevel_body(env, args, flags); - ecl_bds_unwind(env, old_bds_top_index); + ecl_bds_unwind(env, old_bds_ndx); return flags; } diff --git a/src/c/ffi.d b/src/c/ffi.d index f6b3ff17b..9939d0c01 100644 --- a/src/c/ffi.d +++ b/src/c/ffi.d @@ -942,7 +942,7 @@ prepare_cif(cl_env_ptr the_env, ffi_cif *cif, cl_object return_type, ffi_call(&cif, cfun, the_env->ffi_values, (void **)the_env->ffi_values_ptrs); object = ecl_foreign_data_ref_elt(the_env->ffi_values, ecl_foreign_type_code(return_type)); - ECL_STACK_SET_INDEX(the_env, sp); + ECL_STACK_UNWIND(the_env, sp); if (object != ECL_NIL) { @(return object); } else { diff --git a/src/c/interpreter.d b/src/c/interpreter.d index 6685844b6..3b873197f 100644 --- a/src/c/interpreter.d +++ b/src/c/interpreter.d @@ -1276,7 +1276,7 @@ ecl_interpret(cl_object frame, cl_object closure, cl_object bytecodes) THREAD_NEXT; } CASE(OP_PROTECT_NORMAL); { - ecl_bds_unwind(the_env, the_env->frs_stack.top->frs_bds_top_index); + ecl_bds_unwind(the_env, the_env->frs_stack.top->frs_bds_ndx); ecl_frs_pop(the_env); (void)ECL_STACK_POP_UNSAFE(the_env); unwind_lcl(lcl_env, ECL_STACK_POP_UNSAFE(the_env)); diff --git a/src/c/stacks.d b/src/c/stacks.d index c862f46f2..859746715 100644 --- a/src/c/stacks.d +++ b/src/c/stacks.d @@ -290,7 +290,7 @@ ecl_stack_frame_close(cl_object f) { if (f->frame.opened) { f->frame.opened = 0; - ECL_STACK_SET_INDEX(f->frame.env, f->frame.base); + ECL_STACK_UNWIND(f->frame.env, f->frame.base); } } @@ -364,9 +364,9 @@ ecl_bds_overflow(void) } void -ecl_bds_unwind(cl_env_ptr env, cl_index new_bds_top_index) +ecl_bds_unwind(cl_env_ptr env, cl_index new_bds_ndx) { - ecl_bds_ptr new_bds_top = new_bds_top_index + env->bds_stack.org; + ecl_bds_ptr new_bds_top = env->bds_stack.org + new_bds_ndx; ecl_bds_ptr bds = env->bds_stack.top; for (; bds > new_bds_top; bds--) #ifdef ECL_THREADS @@ -744,9 +744,9 @@ _ecl_frs_push(cl_env_ptr env) output->frs_val = ECL_DUMMY_TAG; AO_nop_full(); ++env->frs_stack.top; - output->frs_bds_top_index = env->bds_stack.top - env->bds_stack.org; + output->frs_bds_ndx = env->bds_stack.top - env->bds_stack.org; + output->frs_run_ndx = ECL_STACK_INDEX(env); output->frs_ihs = env->ihs_stack.top; - output->frs_sp = ECL_STACK_INDEX(env); return output; } @@ -760,8 +760,8 @@ ecl_unwind(cl_env_ptr env, ecl_frame_ptr fr) --top; } env->ihs_stack.top = top->frs_ihs; - ecl_bds_unwind(env, top->frs_bds_top_index); - ECL_STACK_SET_INDEX(env, top->frs_sp); + ecl_bds_unwind(env, top->frs_bds_ndx); + ECL_STACK_UNWIND(env, top->frs_run_ndx); env->frs_stack.top = top; ecl_longjmp(env->frs_stack.top->frs_jmpbuf, 1); /* never reached */ @@ -801,7 +801,7 @@ cl_object si_frs_bds(cl_object arg) { cl_env_ptr env = ecl_process_env(); - ecl_return1(env, ecl_make_fixnum(get_frame_ptr(arg)->frs_bds_top_index)); + ecl_return1(env, ecl_make_fixnum(get_frame_ptr(arg)->frs_bds_ndx)); } cl_object diff --git a/src/h/external.h b/src/h/external.h index f37c68e5b..2d8978fca 100755 --- a/src/h/external.h +++ b/src/h/external.h @@ -1648,7 +1648,7 @@ extern ECL_API cl_object si_set_limit(cl_object type, cl_object size); extern ECL_API cl_object si_get_limit(cl_object type); extern ECL_API cl_index ecl_progv(cl_env_ptr env, cl_object vars, cl_object values); -extern ECL_API void ecl_bds_unwind(cl_env_ptr env, cl_index new_bds_top_index); +extern ECL_API void ecl_bds_unwind(cl_env_ptr env, cl_index new_bds_ndx); extern ECL_API void ecl_unwind(cl_env_ptr env, struct ecl_frame *fr) ecl_attr_noreturn; extern ECL_API struct ecl_frame *frs_sch(cl_object frame_id); diff --git a/src/h/stacks.h b/src/h/stacks.h index 9dd587497..9aa029f36 100755 --- a/src/h/stacks.h +++ b/src/h/stacks.h @@ -280,9 +280,9 @@ typedef struct ecl_ihs_frame { typedef struct ecl_frame { jmp_buf frs_jmpbuf; cl_object frs_val; - cl_index frs_bds_top_index; ecl_ihs_ptr frs_ihs; - cl_index frs_sp; + cl_index frs_bds_ndx; + cl_index frs_run_ndx; } *ecl_frame_ptr; extern ECL_API ecl_frame_ptr _ecl_frs_push(cl_env_ptr); @@ -408,9 +408,9 @@ ecl_data_stack_set_index(cl_env_ptr env, cl_index ndx) #define ECL_STACK_REF(env,n) ((env)->run_stack.top[n]) #define ECL_STACK_INDEX(env) ecl_data_stack_index(env) -#define ECL_STACK_SET_INDEX(env,ndx) ecl_data_stack_set_index(env,ndx) -#define ECL_STACK_PUSH(env,o) ecl_data_stack_push(env,o) +#define ECL_STACK_UNWIND(env,ndx) ecl_data_stack_set_index(env,ndx) #define ECL_STACK_PUSH_N(env,n) ecl_data_stack_push_n(env,n) +#define ECL_STACK_PUSH(env,o) ecl_data_stack_push(env,o) #define ECL_STACK_POP_UNSAFE(env) ecl_data_stack_pop_unsafe(env) #define ECL_STACK_POP_N_UNSAFE(env,o) ecl_data_stack_pop_n_unsafe(env,o)