move subr implementation details to gsubr.[ch]
authorAndy Wingo <wingo@pobox.com>
Tue, 5 Jan 2010 15:15:14 +0000 (16:15 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 5 Jan 2010 15:15:14 +0000 (16:15 +0100)
commit9fdf9fd3ea7130fd85eaf0a333a965ac4d2b07c3
tree31ac376b1ce4cfb2757e222d39794577378f8c2f
parente809758a7e0f3f63162a0a9064b95bd1c1d10628
move subr implementation details to gsubr.[ch]

* libguile/procs.h: Move subr macros to gsubr.h.
* libguile/procs.c (scm_c_make_subr, scm_c_make_subr_with_generic)
  (scm_c_define_subr, scm_c_define_subr_with_generic): Remove these,
  because they deal in subr types, and now there is only one subr type.
  The body of this code is now in gsubr.c.

* libguile/deprecated.h (scm_subr_p): Remove from procs.[ch] and define
  as a deprecated macro. Only used internally, but who knows who's out
  there.

* libguile/goops.c (scm_generic_capability_p)
  (scm_enable_primitive_generic_x, scm_set_primitive_generic_x)
  (scm_primitive_generic_generic): Use the new SCM_PRIMITIVE_GENERIC_P
  macro instead of calling scm_subr_p.

* libguile/gsubr.h (SCM_PRIMITIVE_P, SCM_PRIMITIVE_GENERIC_P): New
  macros, to replace scm_subr_p and hacky checking for generic
  capability.
  (SCM_SUBR_META_INFO, SCM_SUBR_NAME, SCM_SUBRF, SCM_SUBR_PROPS)
  (SCM_SUBR_GENERIC, SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC)
  (SCM_SUBR_ARITY_TO_TYPE): Moved here from procs.h.

* libguile/gsubr.c (create_gsubr): Inline the
  scm_c_make_subr definition here, and work for generics too. Removed a
  scm_remember_upto_here_1 that was added earlier in the year when
  meta_info was not being traced by the GC. Adapt callers.
libguile/deprecated.h
libguile/goops.c
libguile/gsubr.c
libguile/gsubr.h
libguile/procs.c
libguile/procs.h