diff options
-rw-r--r-- | libguile/procprop.c | 2 | ||||
-rw-r--r-- | libguile/procs.c | 7 | ||||
-rw-r--r-- | libguile/programs.c | 9 | ||||
-rw-r--r-- | libguile/programs.h | 2 | ||||
-rw-r--r-- | module/system/vm/program.scm | 8 | ||||
-rw-r--r-- | module/texinfo/reflection.scm | 9 |
6 files changed, 14 insertions, 23 deletions
diff --git a/libguile/procprop.c b/libguile/procprop.c index 13b175869..2b894977a 100644 --- a/libguile/procprop.c +++ b/libguile/procprop.c @@ -88,7 +88,7 @@ SCM_DEFINE (scm_procedure_properties, "procedure-properties", 1, 0, 0, if (scm_is_false (ret)) { if (SCM_PROGRAM_P (proc)) - ret = scm_program_properties (proc); + ret = scm_i_program_properties (proc); else ret = SCM_EOL; } diff --git a/libguile/procs.c b/libguile/procs.c index 10ae8855f..c6fab7214 100644 --- a/libguile/procs.c +++ b/libguile/procs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1997,1999,2000,2001, 2006, 2008, 2009 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1997,1999,2000,2001, 2006, 2008, 2009, 2010 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -86,10 +86,7 @@ SCM_DEFINE (scm_procedure_documentation, "procedure-documentation", 1, 0, 0, #define FUNC_NAME s_scm_procedure_documentation { SCM_VALIDATE_PROC (SCM_ARG1, proc); - if (SCM_PROGRAM_P (proc)) - return scm_assq_ref (scm_program_properties (proc), sym_documentation); - else - return SCM_BOOL_F; + return scm_procedure_property (proc, sym_documentation); } #undef FUNC_NAME diff --git a/libguile/programs.c b/libguile/programs.c index 79b1c320b..08b6f65ab 100644 --- a/libguile/programs.c +++ b/libguile/programs.c @@ -244,10 +244,9 @@ SCM_DEFINE (scm_program_arities, "program-arities", 1, 0, 0, } #undef FUNC_NAME -SCM_DEFINE (scm_program_properties, "program-properties", 1, 0, 0, - (SCM program), - "") -#define FUNC_NAME s_scm_program_properties +SCM +scm_i_program_properties (SCM program) +#define FUNC_NAME "%program-properties" { SCM meta; @@ -267,7 +266,7 @@ SCM_DEFINE (scm_program_name, "program-name", 1, 0, 0, #define FUNC_NAME s_scm_program_name { SCM_VALIDATE_PROGRAM (1, program); - return scm_assq_ref (scm_program_properties (program), scm_sym_name); + return scm_assq_ref (scm_i_program_properties (program), scm_sym_name); } #undef FUNC_NAME diff --git a/libguile/programs.h b/libguile/programs.h index c8e3bf626..6c59fdd1e 100644 --- a/libguile/programs.h +++ b/libguile/programs.h @@ -56,7 +56,6 @@ SCM_API SCM scm_program_bindings (SCM program); SCM_API SCM scm_program_sources (SCM program); SCM_API SCM scm_program_source (SCM program, SCM ip); SCM_API SCM scm_program_arities (SCM program); -SCM_API SCM scm_program_properties (SCM program); SCM_API SCM scm_program_name (SCM program); SCM_API SCM scm_program_objects (SCM program); SCM_API SCM scm_program_module (SCM program); @@ -67,6 +66,7 @@ SCM_API SCM scm_program_objcode (SCM program); SCM_API SCM scm_c_program_source (SCM program, size_t ip); +SCM_INTERNAL SCM scm_i_program_properties (SCM program); SCM_INTERNAL int scm_i_program_arity (SCM program, int *req, int *opt, int *rest); SCM_INTERNAL void scm_i_program_print (SCM program, SCM port, scm_print_state *pstate); diff --git a/module/system/vm/program.scm b/module/system/vm/program.scm index 6c5956620..a8ee993d0 100644 --- a/module/system/vm/program.scm +++ b/module/system/vm/program.scm @@ -28,8 +28,7 @@ source:addr source:line source:column source:file program-sources program-source - program-properties program-property program-documentation - program-name + program-documentation program-name program-bindings program-bindings-by-index program-bindings-for-ip program-arities program-arity arity:start arity:end @@ -64,11 +63,8 @@ (define (source:column source) (cdddr source)) -(define (program-property prog prop) - (assq-ref (program-properties prog) prop)) - (define (program-documentation prog) - (assq-ref (program-properties prog) 'documentation)) + (procedure-property prog 'documentation)) (define (collapse-locals locs) (let lp ((ret '()) (locs locs)) diff --git a/module/texinfo/reflection.scm b/module/texinfo/reflection.scm index 1e0d9bd2d..52b1ee958 100644 --- a/module/texinfo/reflection.scm +++ b/module/texinfo/reflection.scm @@ -37,7 +37,6 @@ #:use-module (ice-9 session) #:use-module (ice-9 documentation) #:use-module (ice-9 optargs) - #:use-module (system vm program) #:use-module ((sxml transform) #:select (pre-post-order)) #:export (module-stexi-documentation script-stexi-documentation @@ -127,14 +126,14 @@ (process-args (case type ((syntax-rules) - (let ((patterns (program-property transformer 'patterns))) + (let ((patterns (procedure-property transformer 'patterns))) (if (pair? patterns) (car patterns) '()))) ((identifier-syntax) '()) ((defmacro) - (or (program-property transformer 'defmacro-args) + (or (procedure-property transformer 'defmacro-args) '())) (else ;; a procedural (syntax-case) macro. how to document these? @@ -143,7 +142,7 @@ (define (macro-additional-stexi name type transformer) (case type ((syntax-rules) - (let ((patterns (program-property transformer 'patterns))) + (let ((patterns (procedure-property transformer 'patterns))) (if (pair? patterns) (map (lambda (x) `(defspecx (% (name ,name) @@ -228,7 +227,7 @@ (category "Class")))) ((is-a? object <macro>) (let* ((proc (macro-transformer object)) - (type (and proc (program-property proc 'macro-type)))) + (type (and proc (procedure-property proc 'macro-type)))) `(defspec (% (name ,name) (arguments ,@(macro-arguments name type proc))) ,@(macro-additional-stexi name type proc) |