guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.1-91-ga8952d


From: Andy Wingo
Subject: [Guile-commits] GNU Guile branch, stable-2.0, updated. v2.0.1-91-ga8952d1
Date: Thu, 26 May 2011 15:16:25 +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=a8952d1fb73218ad2389bb290ebbb737d4f88fce

The branch, stable-2.0 has been updated
       via  a8952d1fb73218ad2389bb290ebbb737d4f88fce (commit)
       via  65619ebe9a9af71f6dd17736f5556e53db485f1c (commit)
      from  f567a43cf0336151fac1a51c6553431420f21397 (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 a8952d1fb73218ad2389bb290ebbb737d4f88fce
Author: Andy Wingo <address@hidden>
Date:   Thu May 26 15:58:42 2011 +0200

    remove scm_newcell_count, scm_newcell2_count
    
    * libguile/inline.h:
    * libguile/gc.c: Remove declaration and definition of unused
      "scm_newcell_count" and "scm_newcell2_count".  Since SCM_INTERNAL is
      "extern", these symbols were not externally visible anyway, at least
      under Linux or Windows.

commit 65619ebe9a9af71f6dd17736f5556e53db485f1c
Author: Andy Wingo <address@hidden>
Date:   Thu May 26 12:34:30 2011 +0200

    deprecate scm_immutable_{double_,}cell
    
    * libguile/inline.h:
    * libguile/deprecated.h:
    * libguile/deprecated.c (scm_immutable_cell, scm_immutable_double_cell):
      Deprecate these, as the GC_STUBBORN API doesn't do anything any more.
    
    * libguile/strings.c (scm_i_c_make_symbol): Change the one use of
      scm_immutable_double_cell to scm_double_cell.

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

Summary of changes:
 libguile/deprecated.c |   22 ++++++++++++++
 libguile/deprecated.h |    8 +++++
 libguile/gc.c         |    5 ---
 libguile/inline.h     |   74 -------------------------------------------------
 libguile/strings.c    |    4 +-
 5 files changed, 32 insertions(+), 81 deletions(-)

diff --git a/libguile/deprecated.c b/libguile/deprecated.c
index c7e2aae..2026788 100644
--- a/libguile/deprecated.c
+++ b/libguile/deprecated.c
@@ -2597,6 +2597,28 @@ scm_internal_dynamic_wind (scm_t_guard before,
 
 
 
+SCM
+scm_immutable_cell (scm_t_bits car, scm_t_bits cdr)
+{
+  scm_c_issue_deprecation_warning
+    ("scm_immutable_cell is deprecated.  Use scm_cell instead.");
+
+  return scm_cell (car, cdr);
+}
+
+SCM
+scm_immutable_double_cell (scm_t_bits car, scm_t_bits cbr,
+                          scm_t_bits ccr, scm_t_bits cdr)
+{
+  scm_c_issue_deprecation_warning
+    ("scm_immutable_double_cell is deprecated.  Use scm_double_cell instead.");
+
+  return scm_double_cell (car, cbr, ccr, cdr);
+}
+
+
+
+
 void
 scm_i_init_deprecated ()
 {
diff --git a/libguile/deprecated.h b/libguile/deprecated.h
index 6e832b8..82415ea 100644
--- a/libguile/deprecated.h
+++ b/libguile/deprecated.h
@@ -794,6 +794,14 @@ SCM_DEPRECATED SCM scm_struct_create_handle (SCM obj);
 
 
 
+/* Deprecated 26-05-2011, as the GC_STUBBORN API doesn't do anything any
+   more.  */
+SCM_API SCM scm_immutable_cell (scm_t_bits car, scm_t_bits cdr);
+SCM_API SCM scm_immutable_double_cell (scm_t_bits car, scm_t_bits cbr,
+                                      scm_t_bits ccr, scm_t_bits cdr);
+
+
+
 void scm_i_init_deprecated (void);
 
 #endif
diff --git a/libguile/gc.c b/libguile/gc.c
index 0451fbb..3ae978f 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -224,11 +224,6 @@ SCM_SYMBOL (sym_protected_objects, "protected-objects");
 SCM_SYMBOL (sym_times, "gc-times");
 
 
-/* Number of calls to SCM_NEWCELL since startup.  */
-unsigned scm_newcell_count;
-unsigned scm_newcell2_count;
-
-
 /* {Scheme Interface to GC}
  */
 static SCM
diff --git a/libguile/inline.h b/libguile/inline.h
index 835edcc..a78cac5 100644
--- a/libguile/inline.h
+++ b/libguile/inline.h
@@ -83,14 +83,9 @@
 
 
 SCM_API SCM scm_cell (scm_t_bits car, scm_t_bits cdr);
-SCM_API SCM scm_immutable_cell (scm_t_bits car, scm_t_bits cdr);
 SCM_API SCM scm_double_cell (scm_t_bits car, scm_t_bits cbr,
                             scm_t_bits ccr, scm_t_bits cdr);
-SCM_API SCM scm_immutable_double_cell (scm_t_bits car, scm_t_bits cbr,
-                                      scm_t_bits ccr, scm_t_bits cdr);
 SCM_API SCM scm_words (scm_t_bits car, scm_t_uint16 n_words);
-/* no immutable words for now, would require initialization at the same time as
-   allocation */
 
 SCM_API SCM scm_array_handle_ref (scm_t_array_handle *h, ssize_t pos);
 SCM_API void scm_array_handle_set (scm_t_array_handle *h, ssize_t pos, SCM 
val);
@@ -112,10 +107,6 @@ SCM_API void scm_puts (const char *str_data, SCM port);
    introduce any extraneous symbols into the public namespace.  We
    only need SCM_C_INLINE to be seen publically . */
 
-extern unsigned scm_newcell2_count;
-extern unsigned scm_newcell_count;
-
-
 #ifndef SCM_INLINE_C_INCLUDING_INLINE_H
 SCM_C_EXTERN_INLINE
 #endif
@@ -139,26 +130,6 @@ scm_cell (scm_t_bits car, scm_t_bits cdr)
 SCM_C_EXTERN_INLINE
 #endif
 SCM
-scm_immutable_cell (scm_t_bits car, scm_t_bits cdr)
-{
-  SCM cell = PTR2SCM (GC_MALLOC_STUBBORN (sizeof (scm_t_cell)));
-
-  /* Initialize the type slot last so that the cell is ignored by the GC
-     until it is completely initialized.  This is only relevant when the GC
-     can actually run during this code, which it can't since the GC only runs
-     when all other threads are stopped.  */
-  SCM_GC_SET_CELL_WORD (cell, 1, cdr);
-  SCM_GC_SET_CELL_WORD (cell, 0, car);
-
-  GC_END_STUBBORN_CHANGE (SCM2PTR (cell));
-
-  return cell;
-}
-
-#ifndef SCM_INLINE_C_INCLUDING_INLINE_H
-SCM_C_EXTERN_INLINE
-#endif
-SCM
 scm_double_cell (scm_t_bits car, scm_t_bits cbr,
                 scm_t_bits ccr, scm_t_bits cdr)
 {
@@ -202,51 +173,6 @@ scm_double_cell (scm_t_bits car, scm_t_bits cbr,
 SCM_C_EXTERN_INLINE
 #endif
 SCM
-scm_immutable_double_cell (scm_t_bits car, scm_t_bits cbr,
-                          scm_t_bits ccr, scm_t_bits cdr)
-{
-  SCM z;
-
-  z = PTR2SCM (GC_MALLOC_STUBBORN (2 * sizeof (scm_t_cell)));
-  /* Initialize the type slot last so that the cell is ignored by the
-     GC until it is completely initialized.  This is only relevant
-     when the GC can actually run during this code, which it can't
-     since the GC only runs when all other threads are stopped.
-  */
-  SCM_GC_SET_CELL_WORD (z, 1, cbr);
-  SCM_GC_SET_CELL_WORD (z, 2, ccr);
-  SCM_GC_SET_CELL_WORD (z, 3, cdr);
-  SCM_GC_SET_CELL_WORD (z, 0, car);
-
-  GC_END_STUBBORN_CHANGE (SCM2PTR (z));
-
-  /* When this function is inlined, it's possible that the last
-     SCM_GC_SET_CELL_WORD above will be adjacent to a following
-     initialization of z.  E.g., it occurred in scm_make_real.  GCC
-     from around version 3 (e.g., certainly 3.2) began taking
-     advantage of strict C aliasing rules which say that it's OK to
-     interchange the initialization above and the one below when the
-     pointer types appear to differ sufficiently.  We don't want that,
-     of course.  GCC allows this behaviour to be disabled with the
-     -fno-strict-aliasing option, but would also need to be supplied
-     by Guile users.  Instead, the following statements prevent the
-     reordering.
-   */
-#ifdef __GNUC__
-  __asm__ volatile ("" : : : "memory");
-#else
-  /* portable version, just in case any other compiler does the same
-     thing.  */
-  scm_remember_upto_here_1 (z);
-#endif
-
-  return z;
-}
-
-#ifndef SCM_INLINE_C_INCLUDING_INLINE_H
-SCM_C_EXTERN_INLINE
-#endif
-SCM
 scm_words (scm_t_bits car, scm_t_uint16 n_words)
 {
   SCM z;
diff --git a/libguile/strings.c b/libguile/strings.c
index bf63704..0d379ff 100644
--- a/libguile/strings.c
+++ b/libguile/strings.c
@@ -741,8 +741,8 @@ scm_i_c_make_symbol (const char *name, size_t len,
   SCM buf = make_stringbuf (len);
   memcpy (STRINGBUF_CHARS (buf), name, len);
 
-  return scm_immutable_double_cell (scm_tc7_symbol | flags, SCM_UNPACK (buf),
-                                   (scm_t_bits) hash, SCM_UNPACK (props));
+  return scm_double_cell (scm_tc7_symbol | flags, SCM_UNPACK (buf),
+                          (scm_t_bits) hash, SCM_UNPACK (props));
 }
 
 /* Returns the number of characters in SYM.  This may be different


hooks/post-receive
-- 
GNU Guile



reply via email to

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