mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-15 08:10:17 +02:00
Add frame-procedure-name
* libguile/frames.c (frame_procedure_name_var): New static definition. (init_frame_procedure_name_var): New helper. (scm_frame_procedure_name): New function that returns the name of the frame's procedure, as frame-procedure is to be deprecated. * libguile/frames.h (scm_frame_procedure_name): Export. * module/ice-9/boot-9.scm (exception-printers): Use frame-procedure-name instead of procedure-name on frame-procedure. * module/system/vm/frame.scm (frame-procedure-name): New private function, implementing scm_frame_procedure_name. (frame-call-representation): Use frame-procedure-name to get the procedure name to print.
This commit is contained in:
parent
8af3423efe
commit
39090e677e
4 changed files with 52 additions and 9 deletions
|
@ -149,6 +149,29 @@ SCM_DEFINE (scm_frame_procedure, "frame-procedure", 1, 0, 0,
|
|||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
static SCM frame_procedure_name_var;
|
||||
|
||||
static void
|
||||
init_frame_procedure_name_var (void)
|
||||
{
|
||||
frame_procedure_name_var
|
||||
= scm_c_private_lookup ("system vm frame", "frame-procedure-name");
|
||||
}
|
||||
|
||||
SCM_DEFINE (scm_frame_procedure_name, "frame-procedure-name", 1, 0, 0,
|
||||
(SCM frame),
|
||||
"")
|
||||
#define FUNC_NAME s_scm_frame_procedure_name
|
||||
{
|
||||
static scm_i_pthread_once_t once = SCM_I_PTHREAD_ONCE_INIT;
|
||||
scm_i_pthread_once (&once, init_frame_procedure_name_var);
|
||||
|
||||
SCM_VALIDATE_VM_FRAME (1, frame);
|
||||
|
||||
return scm_call_1 (scm_variable_ref (frame_procedure_name_var), frame);
|
||||
}
|
||||
#undef FUNC_NAME
|
||||
|
||||
static SCM frame_arguments_var;
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue