1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-07 18:10:21 +02:00

scm_i_program_properties is internal; just use procedure-properties

* libguile/programs.h:
* libguile/programs.c (scm_i_program_properties): Make internal.
  (scm_program_name): Use scm_i_program_properties.

* libguile/procprop.c (scm_procedure_properties): Use
  scm_i_program_properties, for programs.

* libguile/procs.c (scm_procedure_documentation): Use procedure-property
  to get to 'documentation, not program-property.

* module/system/vm/program.scm (program-properties, program-property):
  Remove from the exports list.
  (program-documentation): Use procedure-property.

* module/texinfo/reflection.scm (macro-arguments)
  (macro-additional-stexi)
  (object-stexi-documentation): Use procedure-property, not
  program-property.
This commit is contained in:
Andy Wingo 2010-04-17 15:02:56 +02:00
parent 90fa152c1d
commit 07e424b753
6 changed files with 14 additions and 23 deletions

View file

@ -88,7 +88,7 @@ SCM_DEFINE (scm_procedure_properties, "procedure-properties", 1, 0, 0,
if (scm_is_false (ret)) if (scm_is_false (ret))
{ {
if (SCM_PROGRAM_P (proc)) if (SCM_PROGRAM_P (proc))
ret = scm_program_properties (proc); ret = scm_i_program_properties (proc);
else else
ret = SCM_EOL; ret = SCM_EOL;
} }

View file

@ -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 * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License * 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 #define FUNC_NAME s_scm_procedure_documentation
{ {
SCM_VALIDATE_PROC (SCM_ARG1, proc); SCM_VALIDATE_PROC (SCM_ARG1, proc);
if (SCM_PROGRAM_P (proc)) return scm_procedure_property (proc, sym_documentation);
return scm_assq_ref (scm_program_properties (proc), sym_documentation);
else
return SCM_BOOL_F;
} }
#undef FUNC_NAME #undef FUNC_NAME

View file

@ -244,10 +244,9 @@ SCM_DEFINE (scm_program_arities, "program-arities", 1, 0, 0,
} }
#undef FUNC_NAME #undef FUNC_NAME
SCM_DEFINE (scm_program_properties, "program-properties", 1, 0, 0, SCM
(SCM program), scm_i_program_properties (SCM program)
"") #define FUNC_NAME "%program-properties"
#define FUNC_NAME s_scm_program_properties
{ {
SCM meta; SCM meta;
@ -267,7 +266,7 @@ SCM_DEFINE (scm_program_name, "program-name", 1, 0, 0,
#define FUNC_NAME s_scm_program_name #define FUNC_NAME s_scm_program_name
{ {
SCM_VALIDATE_PROGRAM (1, program); 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 #undef FUNC_NAME

View file

@ -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_sources (SCM program);
SCM_API SCM scm_program_source (SCM program, SCM ip); SCM_API SCM scm_program_source (SCM program, SCM ip);
SCM_API SCM scm_program_arities (SCM program); 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_name (SCM program);
SCM_API SCM scm_program_objects (SCM program); SCM_API SCM scm_program_objects (SCM program);
SCM_API SCM scm_program_module (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_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 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_INTERNAL void scm_i_program_print (SCM program, SCM port,
scm_print_state *pstate); scm_print_state *pstate);

View file

@ -28,8 +28,7 @@
source:addr source:line source:column source:file source:addr source:line source:column source:file
program-sources program-source program-sources program-source
program-properties program-property program-documentation program-documentation program-name
program-name
program-bindings program-bindings-by-index program-bindings-for-ip program-bindings program-bindings-by-index program-bindings-for-ip
program-arities program-arity arity:start arity:end program-arities program-arity arity:start arity:end
@ -64,11 +63,8 @@
(define (source:column source) (define (source:column source)
(cdddr source)) (cdddr source))
(define (program-property prog prop)
(assq-ref (program-properties prog) prop))
(define (program-documentation prog) (define (program-documentation prog)
(assq-ref (program-properties prog) 'documentation)) (procedure-property prog 'documentation))
(define (collapse-locals locs) (define (collapse-locals locs)
(let lp ((ret '()) (locs locs)) (let lp ((ret '()) (locs locs))

View file

@ -37,7 +37,6 @@
#:use-module (ice-9 session) #:use-module (ice-9 session)
#:use-module (ice-9 documentation) #:use-module (ice-9 documentation)
#:use-module (ice-9 optargs) #:use-module (ice-9 optargs)
#:use-module (system vm program)
#:use-module ((sxml transform) #:select (pre-post-order)) #:use-module ((sxml transform) #:select (pre-post-order))
#:export (module-stexi-documentation #:export (module-stexi-documentation
script-stexi-documentation script-stexi-documentation
@ -127,14 +126,14 @@
(process-args (process-args
(case type (case type
((syntax-rules) ((syntax-rules)
(let ((patterns (program-property transformer 'patterns))) (let ((patterns (procedure-property transformer 'patterns)))
(if (pair? patterns) (if (pair? patterns)
(car patterns) (car patterns)
'()))) '())))
((identifier-syntax) ((identifier-syntax)
'()) '())
((defmacro) ((defmacro)
(or (program-property transformer 'defmacro-args) (or (procedure-property transformer 'defmacro-args)
'())) '()))
(else (else
;; a procedural (syntax-case) macro. how to document these? ;; a procedural (syntax-case) macro. how to document these?
@ -143,7 +142,7 @@
(define (macro-additional-stexi name type transformer) (define (macro-additional-stexi name type transformer)
(case type (case type
((syntax-rules) ((syntax-rules)
(let ((patterns (program-property transformer 'patterns))) (let ((patterns (procedure-property transformer 'patterns)))
(if (pair? patterns) (if (pair? patterns)
(map (lambda (x) (map (lambda (x)
`(defspecx (% (name ,name) `(defspecx (% (name ,name)
@ -228,7 +227,7 @@
(category "Class")))) (category "Class"))))
((is-a? object <macro>) ((is-a? object <macro>)
(let* ((proc (macro-transformer object)) (let* ((proc (macro-transformer object))
(type (and proc (program-property proc 'macro-type)))) (type (and proc (procedure-property proc 'macro-type))))
`(defspec (% (name ,name) `(defspec (% (name ,name)
(arguments ,@(macro-arguments name type proc))) (arguments ,@(macro-arguments name type proc)))
,@(macro-additional-stexi name type proc) ,@(macro-additional-stexi name type proc)