Fold GOOPS compile and dispatch modules into main GOOPS module
authorAndy Wingo <wingo@pobox.com>
Sun, 4 Jan 2015 20:52:12 +0000 (15:52 -0500)
committerAndy Wingo <wingo@pobox.com>
Fri, 23 Jan 2015 15:16:00 +0000 (16:16 +0100)
commite0590e7c277e321beeef9ccd32da4a6d55481e15
tree7aabab27c7721b1004ee211dd38e241425bc2108
parent6098d96b7b9e0e12aec541ac4edb0351af947281
Fold GOOPS compile and dispatch modules into main GOOPS module

* libguile/goops.c (scm_sys_invalidate_method_cache_x): Remove C
  interface to this internal method.  Instead, internal callers are all
  from Scheme, so we move the implementation to Scheme.
  (scm_make): Dispatch to `make' in Scheme.  This is an incompatible but
  great change, as it fulfills the common user perception that scm_make
  is the same as GOOPS's `make'.
  (scm_sys_goops_early_init): Capture `make'.
  (scm_no_applicable_method): Define in Scheme and capture in C.

* module/Makefile.am: Remove oop/goops/compile.scm and
  oop/goops/dispatch.scm.

* module/oop/goops/compile.scm:
* module/oop/goops/dispatch.scm: Fold into goops.scm.

* module/oop/goops.scm: Fold in the generic compile and dispatch
  modules.  This eliminates a circularity that caused some eval-when
  shenanigans, so remove the eval-whens as well.  Reimplement the boot
  version of `make' in Scheme, and make the <generic> `initialize'
  method handle invalidation instead of the generic %allocate-instance.
  (no-applicable-method): Define here.  Import the utils module in the
  normal define-module block.
libguile/goops.c
module/Makefile.am
module/oop/goops.scm
module/oop/goops/compile.scm [deleted file]
module/oop/goops/dispatch.scm [deleted file]