[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, branch_release-1-8, updated. release_1-8-6-64-g9d9a58e,
Neil Jerram <=