From bf8328ec16cbe76b7af9703bb41e964865034561 Mon Sep 17 00:00:00 2001 From: Andy Wingo Date: Thu, 16 May 2013 23:38:29 +0200 Subject: procedure-documentation works on RTL procedures * libguile/procprop.h: * libguile/procprop.c (scm_procedure_documentation): Move here from procs.c, and to make the logic more similar to that of procedure-name, which allows RTL programs to dispatch to rtl-program-documentation. * libguile/programs.c (scm_i_rtl_program_documentation): * libguile/programs.h: * module/system/vm/program.scm (rtl-program-documentation): New plumbing. * module/system/vm/debug.scm (find-program-docstring): New interface to grovel ELF for a docstring. --- libguile/programs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'libguile/programs.c') diff --git a/libguile/programs.c b/libguile/programs.c index 12561b30d..567708a51 100644 --- a/libguile/programs.c +++ b/libguile/programs.c @@ -123,6 +123,19 @@ scm_i_rtl_program_name (SCM program) return scm_call_1 (scm_variable_ref (rtl_program_name), program); } +SCM +scm_i_rtl_program_documentation (SCM program) +{ + static SCM rtl_program_documentation = SCM_BOOL_F; + + if (scm_is_false (rtl_program_documentation) && scm_module_system_booted_p) + rtl_program_documentation = + scm_c_private_variable ("system vm program", + "rtl-program-documentation"); + + return scm_call_1 (scm_variable_ref (rtl_program_documentation), program); +} + void scm_i_program_print (SCM program, SCM port, scm_print_state *pstate) { -- cgit v1.2.3