wingo pushed a commit to branch master
in repository guile.
commit 6ab19396539d9f4dffed0fc80c754e3e61bdc08c
Author: Andy Wingo <[email protected]>
Date: Wed Dec 24 11:07:47 2014 -0500
%init-goops-builtins is an extension, not a global
* libguile/goops.h:
* libguile/goops.c (scm_init_goops, scm_init_goops_builtins): Move
%init-goops-builtins to be an extension instead of a globally
accessible function.
* module/oop/goops.scm: Adapt.
---
libguile/goops.c | 11 +++++------
libguile/goops.h | 1 -
module/oop/goops.scm | 3 ++-
3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/libguile/goops.c b/libguile/goops.c
index f76f745..0b3f30a 100644
--- a/libguile/goops.c
+++ b/libguile/goops.c
@@ -2439,8 +2439,8 @@ SCM_DEFINE (scm_sys_goops_loaded, "%goops-loaded", 0, 0,
0,
SCM scm_module_goops;
-SCM
-scm_init_goops_builtins (void)
+static void
+scm_init_goops_builtins (void *unused)
{
scm_module_goops = scm_current_module ();
@@ -2466,15 +2466,14 @@ scm_init_goops_builtins (void)
scm_make (scm_list_3 (scm_class_generic, k_name, name));
scm_module_define (scm_module_goops, name, scm_no_applicable_method);
}
-
- return SCM_UNSPECIFIED;
}
void
scm_init_goops ()
{
- scm_c_define_gsubr ("%init-goops-builtins", 0, 0, 0,
- scm_init_goops_builtins);
+ scm_c_register_extension ("libguile-" SCM_EFFECTIVE_VERSION,
+ "scm_init_goops_builtins", scm_init_goops_builtins,
+ NULL);
}
/*
diff --git a/libguile/goops.h b/libguile/goops.h
index 881bd2f..5a9e2f0 100644
--- a/libguile/goops.h
+++ b/libguile/goops.h
@@ -304,7 +304,6 @@ SCM_API SCM scm_wta_dispatch_n (SCM gf, SCM args, int pos,
const char *subr);
SCM_INTERNAL SCM scm_i_define_class_for_vtable (SCM vtable);
-SCM_INTERNAL SCM scm_init_goops_builtins (void);
SCM_INTERNAL void scm_init_goops (void);
#endif /* SCM_GOOPS_H */
diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index 654ee86..dfe4d6c 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -200,7 +200,8 @@
;; First initialize the builtin part of GOOPS
(eval-when (compile load eval)
- (%init-goops-builtins))
+ (load-extension (string-append "libguile-" (effective-version))
+ "scm_init_goops_builtins"))
(eval-when (compile load eval)
(use-modules ((language tree-il primitives) :select
(add-interesting-primitive!)))