guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, branch_release-1-8, updated. release_1


From: Neil Jerram
Subject: [Guile-commits] GNU Guile branch, branch_release-1-8, updated. release_1-8-6-64-g9d9a58e
Date: Mon, 29 Jun 2009 20:48:40 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=9d9a58e1841386b14bf0b03bf4bffc2e50181edb

The branch, branch_release-1-8 has been updated
       via  9d9a58e1841386b14bf0b03bf4bffc2e50181edb (commit)
       via  954d46413fbc6e7c6be0bab5fab8de0e4abb4e17 (commit)
       via  c00be3d85dfca6cc641c4e4be91b0bd3092fb3a1 (commit)
       via  f450c2c06ec2a351dbac0aa7cca27ea26796f303 (commit)
      from  a73225dd615701f1c778248a2ede892afbbec57c (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 9d9a58e1841386b14bf0b03bf4bffc2e50181edb
Author: Neil Jerram <address@hidden>
Date:   Mon Jun 29 20:37:02 2009 +0100

    For MinGW hide exported struct variables behind pointers
    
    MinGW apparently can't export/import struct variables from/to a DLL,
    so wrap the ones needed by inline.h in exported/imported pointer
    variables.
    
    All of the following changes apply to a MinGW build only.
    
    * libguile/gc-freelist.c (scm_i_master_freelist_ptr,
      scm_i_master_freelist2_ptr): New API variables.
    
    * libguile/gc.h (scm_i_freelist_ptr, scm_i_freelist2_ptr,
      scm_i_master_freelist_ptr, scm_i_master_freelist2_ptr): New global
      variable declarations.
    
    * libguile/inline.h (scm_cell): Use scm_i_freelist_ptr and
      scm_i_master_freelist_ptr instead of scm_i_freelist and
      scm_i_master_freelist.
      (scm_double_cell): Use scm_i_freelist2_ptr and
      scm_i_master_freelist2_ptr instead of scm_i_freelist2 and
      scm_i_master_freelist2.
    
    * libguile/threads.c (scm_i_freelist_ptr, scm_i_freelist2_ptr): New
      global variables.

commit 954d46413fbc6e7c6be0bab5fab8de0e4abb4e17
Author: Neil Jerram <address@hidden>
Date:   Mon Jun 29 20:25:41 2009 +0100

    Use GUILE_FOR_BUILD for autogeneration steps during the build
    
    This is a fix for a MinGW cross compile build.
    
    * doc/ref/Makefile.am (autoconf-macros.texi): Use GUILE_FOR_BUILD to
      generate this.

commit c00be3d85dfca6cc641c4e4be91b0bd3092fb3a1
Author: Neil Jerram <address@hidden>
Date:   Mon Jun 29 20:41:50 2009 +0100

    srfi-60.c shouldn't include private-gc.h
    
    * srfi/srfi-60.c (SCM_MIN): Define here instead of including
      private-gc.h.

commit f450c2c06ec2a351dbac0aa7cca27ea26796f303
Author: Neil Jerram <address@hidden>
Date:   Mon Jun 29 20:43:16 2009 +0100

    In MinGW build, avoid clash between libguile and SRFI library function names
    
    The dummy scm_init_* and scm_c_init_* functions in the empty libraries
    for SRFIs 4, 13 and 14 clash with declarations with the same names in
    libguile.h that are marked (in the MinGW build) with __declspec
    (dllimport).  These libraries are empty because their content was
    moved into libguile some time ago, and I think these functions are
    needed only so that the libraries appear to contain something.  They
    used also to be needed for the (load-extension ...)  forms in the
    corresponding .scm modules, but those forms were not needed anymore,
    and so were removed, when everything moved into libguile.
    
    * srfi/srfi-13.c (scm_init_srfi_13_no_clash_with_libguile): Renamed
      from scm_init_srfi_13.
      (scm_init_srfi_13_14_no_clash_with_libguile): Same.
    
    * srfi/srfi-14.c (scm_init_srfi_14_no_clash_with_libguile): Same.
      (scm_c_init_srfi_14_no_clash_with_libguile): Same.
    
    * srfi/srfi-4.c (scm_init_srfi_4_no_clash_with_libguile): Same.

-----------------------------------------------------------------------

Summary of changes:
 doc/ref/Makefile.am    |    2 +-
 libguile/gc-freelist.c |    5 ++++-
 libguile/gc.h          |    7 ++++++-
 libguile/inline.h      |   16 ++++++++++++++++
 libguile/threads.c     |    4 ++++
 srfi/srfi-13.c         |    7 +++++--
 srfi/srfi-14.c         |    7 +++++--
 srfi/srfi-4.c          |    4 +++-
 srfi/srfi-60.c         |    2 +-
 9 files changed, 45 insertions(+), 9 deletions(-)

diff --git a/doc/ref/Makefile.am b/doc/ref/Makefile.am
index b60f2ff..46958b6 100644
--- a/doc/ref/Makefile.am
+++ b/doc/ref/Makefile.am
@@ -86,7 +86,7 @@ include $(top_srcdir)/am/pre-inst-guile
 
 autoconf.texi: autoconf-macros.texi
 autoconf-macros.texi: $(top_srcdir)/guile-config/guile.m4
-       $(preinstguiletool)/snarf-guile-m4-docs 
$(top_srcdir)/guile-config/guile.m4 \
+       GUILE="$(GUILE_FOR_BUILD)" $(top_srcdir)/scripts/snarf-guile-m4-docs 
$(top_srcdir)/guile-config/guile.m4 \
          > $(srcdir)/$@
 
 MAINTAINERCLEANFILES = autoconf-macros.texi
diff --git a/libguile/gc-freelist.c b/libguile/gc-freelist.c
index c8824df..ca8a962 100644
--- a/libguile/gc-freelist.c
+++ b/libguile/gc-freelist.c
@@ -29,7 +29,10 @@
 
 scm_t_cell_type_statistics scm_i_master_freelist;
 scm_t_cell_type_statistics scm_i_master_freelist2;
-
+#ifdef __MINGW32__
+scm_t_cell_type_statistics *scm_i_master_freelist_ptr = &scm_i_master_freelist;
+scm_t_cell_type_statistics *scm_i_master_freelist2_ptr = 
&scm_i_master_freelist2;
+#endif
 
 
 
diff --git a/libguile/gc.h b/libguile/gc.h
index 3cedeb4..72af104 100644
--- a/libguile/gc.h
+++ b/libguile/gc.h
@@ -276,7 +276,12 @@ SCM_API scm_i_pthread_key_t scm_i_freelist;
 SCM_API scm_i_pthread_key_t scm_i_freelist2;
 SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist;
 SCM_API struct scm_t_cell_type_statistics scm_i_master_freelist2;
-
+#ifdef __MINGW32__
+SCM_API scm_i_pthread_key_t *scm_i_freelist_ptr;
+SCM_API scm_i_pthread_key_t *scm_i_freelist2_ptr;
+SCM_API struct scm_t_cell_type_statistics *scm_i_master_freelist_ptr;
+SCM_API struct scm_t_cell_type_statistics *scm_i_master_freelist2_ptr;
+#endif
 
 SCM_API unsigned long scm_gc_cells_swept;
 SCM_API unsigned long scm_gc_cells_collected;
diff --git a/libguile/inline.h b/libguile/inline.h
index eae1e22..2069c7e 100644
--- a/libguile/inline.h
+++ b/libguile/inline.h
@@ -109,10 +109,18 @@ SCM
 scm_cell (scm_t_bits car, scm_t_bits cdr)
 {
   SCM z;
+#ifdef __MINGW32__
+  SCM *freelist = SCM_FREELIST_LOC (*scm_i_freelist_ptr);
+#else
   SCM *freelist = SCM_FREELIST_LOC (scm_i_freelist);
+#endif
 
   if (scm_is_null (*freelist))
+#ifdef __MINGW32__
+    z = scm_gc_for_newcell (scm_i_master_freelist_ptr, freelist);
+#else
     z = scm_gc_for_newcell (&scm_i_master_freelist, freelist);
+#endif
   else
     {
       z = *freelist;
@@ -180,10 +188,18 @@ scm_double_cell (scm_t_bits car, scm_t_bits cbr,
                 scm_t_bits ccr, scm_t_bits cdr)
 {
   SCM z;
+#ifdef __MINGW32__
+  SCM *freelist = SCM_FREELIST_LOC (*scm_i_freelist2_ptr);
+#else
   SCM *freelist = SCM_FREELIST_LOC (scm_i_freelist2);
+#endif
 
   if (scm_is_null (*freelist))
+#ifdef __MINGW32__
+    z = scm_gc_for_newcell (scm_i_master_freelist2_ptr, freelist);
+#else
     z = scm_gc_for_newcell (&scm_i_master_freelist2, freelist);
+#endif
   else
     {
       z = *freelist;
diff --git a/libguile/threads.c b/libguile/threads.c
index 3d6df11..95a905c 100644
--- a/libguile/threads.c
+++ b/libguile/threads.c
@@ -1680,6 +1680,10 @@ scm_dynwind_critical_section (SCM mutex)
 /*** Initialization */
 
 scm_i_pthread_key_t scm_i_freelist, scm_i_freelist2;
+#ifdef __MINGW32__
+scm_i_pthread_key_t *scm_i_freelist_ptr = &scm_i_freelist;
+scm_i_pthread_key_t *scm_i_freelist2_ptr = &scm_i_freelist2;
+#endif
 scm_i_pthread_mutex_t scm_i_misc_mutex;
 
 #if SCM_USE_PTHREAD_THREADS
diff --git a/srfi/srfi-13.c b/srfi/srfi-13.c
index dd5ce9b..8655885 100644
--- a/srfi/srfi-13.c
+++ b/srfi/srfi-13.c
@@ -29,12 +29,15 @@
 
 #include <srfi/srfi-13.h>
 
+void scm_init_srfi_13_no_clash_with_libguile (void);
+void scm_init_srfi_13_14_no_clash_with_libguile (void);
+
 void
-scm_init_srfi_13 (void)
+scm_init_srfi_13_no_clash_with_libguile (void)
 {
 }
 
 void
-scm_init_srfi_13_14 (void)
+scm_init_srfi_13_14_no_clash_with_libguile (void)
 {
 }
diff --git a/srfi/srfi-14.c b/srfi/srfi-14.c
index 1a7297b..76cea87 100644
--- a/srfi/srfi-14.c
+++ b/srfi/srfi-14.c
@@ -23,12 +23,15 @@
 
 #include <srfi/srfi-14.h>
 
+void scm_init_srfi_14_no_clash_with_libguile (void);
+void scm_c_init_srfi_14_no_clash_with_libguile (void);
+
 void
-scm_init_srfi_14 (void)
+scm_init_srfi_14_no_clash_with_libguile (void)
 {
 }
 
 void
-scm_c_init_srfi_14 (void)
+scm_c_init_srfi_14_no_clash_with_libguile (void)
 {
 }
diff --git a/srfi/srfi-4.c b/srfi/srfi-4.c
index f40c6b3..f2e29e2 100644
--- a/srfi/srfi-4.c
+++ b/srfi/srfi-4.c
@@ -28,8 +28,10 @@
 
 #include <srfi/srfi-4.h>
 
+void scm_init_srfi_4_no_clash_with_libguile (void);
+
 void
-scm_init_srfi_4 (void)
+scm_init_srfi_4_no_clash_with_libguile (void)
 {
 }
 
diff --git a/srfi/srfi-60.c b/srfi/srfi-60.c
index e173369..a91cb50 100644
--- a/srfi/srfi-60.c
+++ b/srfi/srfi-60.c
@@ -22,9 +22,9 @@
 #endif
 
 #include <libguile.h>
-#include <libguile/private-gc.h>  /* for SCM_MIN */
 #include <srfi/srfi-60.h>
 
+#define SCM_MIN(A, B) ((A) < (B) ? (A) : (B))
 
 SCM_DEFINE (scm_srfi60_log2_binary_factors, "log2-binary-factors", 1, 0, 0,
             (SCM n),


hooks/post-receive
-- 
GNU Guile




reply via email to

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