1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

%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.
This commit is contained in:
Andy Wingo 2014-12-24 11:07:47 -05:00
parent 9167e0b88d
commit 6ab1939653
3 changed files with 7 additions and 8 deletions

View file

@ -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);
}
/*

View file

@ -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 */

View file

@ -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!)))