guile-commits
[Top][All Lists]
Advanced

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]