[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 07/42: %init-goops-builtins is an extension, not a globa
From: |
Andy Wingo |
Subject: |
[Guile-commits] 07/42: %init-goops-builtins is an extension, not a global |
Date: |
Sat, 10 Jan 2015 00:03:04 +0000 |
wingo pushed a commit to branch wip-goops-refactor
in repository guile.
commit c6fa70e7748b0738123a0e9bd5de2da7447d34e4
Author: Andy Wingo <address@hidden>
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 edafbe4..e1c9ef7 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 143336d..e57c595 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -199,7 +199,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!)))
- [Guile-commits] 01/42: %compute-applicable-methods in Scheme, (continued)
- [Guile-commits] 01/42: %compute-applicable-methods in Scheme, Andy Wingo, 2015/01/09
- [Guile-commits] 05/42: More useless goops.c code removal, Andy Wingo, 2015/01/09
- [Guile-commits] 03/42: Rewrite %method-more-specific? to be in Scheme, Andy Wingo, 2015/01/09
- [Guile-commits] 04/42: Remove unused macros in goops.c, Andy Wingo, 2015/01/09
- [Guile-commits] 10/42: Remove declarations without definitions, Andy Wingo, 2015/01/09
- [Guile-commits] 08/42: Preparation for more GOOPS refactorings, Andy Wingo, 2015/01/09
- [Guile-commits] 06/42: compute-cpl implementation only in Scheme, Andy Wingo, 2015/01/09
- [Guile-commits] 09/42: Remove unused %fast-slot-ref / %fast-slot-set! from GOOPS, Andy Wingo, 2015/01/09
- [Guile-commits] 12/42: Deprecate scm_basic_make_class, Andy Wingo, 2015/01/09
- [Guile-commits] 14/42: define-generic, define-extended-generic are hygienic syntax, Andy Wingo, 2015/01/09
- [Guile-commits] 07/42: %init-goops-builtins is an extension, not a global,
Andy Wingo <=
- [Guile-commits] 13/42: `class' is a hygienic macro, Andy Wingo, 2015/01/09
- [Guile-commits] 16/42: Further GOOPS simplifications, Andy Wingo, 2015/01/09
- [Guile-commits] 18/42: Remove unused scm_t_method and SCM_METHOD, Andy Wingo, 2015/01/09
- [Guile-commits] 15/42: Remove unused *goops-module* definition., Andy Wingo, 2015/01/09
- [Guile-commits] 19/42: Deprecate scm_no_applicable_method C export, Andy Wingo, 2015/01/09
- [Guile-commits] 21/42: Remove useless scm_s_slot_set_x export, Andy Wingo, 2015/01/09
- [Guile-commits] 20/42: Remove unreachable code in scm_setter, Andy Wingo, 2015/01/09
- [Guile-commits] 02/42: Deprecate C interfaces scm_compute_applicable_methods, scm_find_method, Andy Wingo, 2015/01/09
- [Guile-commits] 23/42: Remove unused CPP defines naming <method> slots, Andy Wingo, 2015/01/09
- [Guile-commits] 27/42: Remove scm_at_assert_bound_ref, Andy Wingo, 2015/01/09