* dynwind.c (scm_swap_bindings): Ditto.
[bpt/guile.git] / libguile / __scm.h
index 1a1b670..9c530ca 100644 (file)
  * whether to permit this exception to apply to your modifications.
  * If you do not wish that, delete this exception notice.  */
 \f
+
+/* "What's the difference between _scm.h and __scm.h?"
+
+   _scm.h is not installed; it's only visible to the libguile sources
+   themselves.
+
+   __scm.h is installed, and is #included by <libguile.h>.  If both
+   the client and libguile need some piece of information, and it
+   doesn't fit well into the header file for any particular module, it
+   should go in __scm.h.  */
+
+
 /* {Supported Options}
  *
  * These may be defined or undefined.
  */
 
+/* Old async mechanism */
+/* #define GUILE_OLD_ASYNC_CLICK */
+
+/* New scheme for garbage collection */
+#define GUILE_NEW_GC_SCHEME
+
 /* #define GUILE_DEBUG_FREELIST */
 
 /* If the compile FLAG `SCM_CAUTIOUS' is #defined then the number of
@@ -73,7 +91,9 @@
 
 /* GC should relinquish empty cons-pair arenas. 
  */
+#ifndef GUILE_NEW_GC_SCHEME
 #define GC_FREE_SEGMENTS
+#endif
 
 /* Provide a scheme-accessible count-down timer that
  * generates a pseudo-interrupt.
@@ -233,6 +253,7 @@ typedef long SCM_STACKITEM;
 #define SCM_THREAD_SWITCHING_CODE
 #endif
 
+#ifdef GUILE_OLD_ASYNC_CLICK
 extern unsigned int scm_async_clock;
 
 #define SCM_ASYNC_TICK \
@@ -240,6 +261,15 @@ do { \
   if (0 == --scm_async_clock) \
     scm_async_click (); \
 } while(0)
+#else
+extern int scm_asyncs_pending_p;
+
+#define SCM_ASYNC_TICK /*fixme* should change names */ \
+do { \
+  if (scm_asyncs_pending_p) \
+    scm_async_click (); \
+} while (0)
+#endif
 
 #ifdef SCM_CAREFUL_INTS
 #define SCM_CHECK_NOT_DISABLED \
@@ -530,3 +560,9 @@ extern struct errdesc scm_errmsgs[];
 \f
 
 #endif  /* __SCMH */
+
+/*
+  Local Variables:
+  c-file-style: "gnu"
+  End:
+*/