* Makefile.am (EXTRA_libguile_la_SOURCES): New variable to hold
[bpt/guile.git] / libguile / __scm.h
index 7fea1c8..52d175e 100644 (file)
 \f
 /* {Unsupported Options}
  *
- * These must be defined.
+ * These must be defined as given here.
  */
 
 
 #define CCLO
-#define SICP
+
+/* Guile Scheme supports the #f/() distinction; Guile Lisp won't.  We
+   have horrible plans for their unification.  */
+#undef SICP
 
 \f
 
@@ -240,17 +243,31 @@ typedef long SCM_STACKITEM;
 \f
 
 #ifndef USE_THREADS
-#define SCM_THREADS_SWITCHING_CODE
+#define SCM_THREAD_DEFER
+#define SCM_THREAD_ALLOW
+#define SCM_THREAD_REDEFER
+#define SCM_THREAD_REALLOW_1
+#define SCM_THREAD_REALLOW_2
+#define SCM_THREAD_SWITCHING_CODE
 #endif
 
 extern unsigned int scm_async_clock;
+#if 0
 #define SCM_ASYNC_TICK \
 { \
   if (0 == --scm_async_clock) \
     scm_async_click (); \
-  SCM_THREADS_SWITCHING_CODE; \
 } \
 
+#else
+#define SCM_ASYNC_TICK \
+{ \
+  if (0 == --scm_async_clock) \
+    scm_async_click (); \
+  SCM_THREAD_SWITCHING_CODE; \
+} \
+
+#endif
 
 #ifdef SCM_CAREFUL_INTS
 #define SCM_CHECK_NOT_DISABLED \
@@ -270,12 +287,14 @@ extern unsigned int scm_async_clock;
 #define SCM_DEFER_INTS \
 { \
   SCM_CHECK_NOT_DISABLED; \
+  SCM_THREAD_DEFER; \
   scm_ints_disabled = 1; \
 } \
 
 
 #define SCM_ALLOW_INTS_ONLY \
 { \
+  SCM_THREAD_ALLOW; \
   scm_ints_disabled = 0; \
 } \
 
@@ -283,6 +302,7 @@ extern unsigned int scm_async_clock;
 #define SCM_ALLOW_INTS \
 { \
   SCM_CHECK_NOT_ENABLED; \
+  SCM_THREAD_ALLOW; \
   scm_ints_disabled = 0; \
   SCM_ASYNC_TICK; \
 } \
@@ -290,15 +310,20 @@ extern unsigned int scm_async_clock;
 
 #define SCM_REDEFER_INTS  \
 { \
+  SCM_THREAD_REDEFER; \
   ++scm_ints_disabled; \
 } \
 
 
 #define SCM_REALLOW_INTS \
 { \
+  SCM_THREAD_REALLOW_1; \
   --scm_ints_disabled; \
   if (!scm_ints_disabled) \
-    SCM_ASYNC_TICK; \
+    { \
+      SCM_THREAD_REALLOW_2; \
+      SCM_ASYNC_TICK; \
+    } \
 } \
 
 
@@ -322,17 +347,14 @@ extern unsigned int scm_async_clock;
           goto _label
 #endif
 
-#define lgh_error(_key, _subr, _message, _args, _rest) \
-       scm_error (_key, _subr, _message, _args, _rest)
-
 #define SCM_ARGn               0
 #define SCM_ARG1               1
 #define SCM_ARG2               2
 #define SCM_ARG3               3
 #define SCM_ARG4               4
 #define SCM_ARG5               5
-     /* #define SCM_ARG6               6
-       #define SCM_ARG7                7 */
+#define SCM_ARG6               6
+#define SCM_ARG7               7 
      /* #define SCM_ARGERR(X)          ((X) < SCM_WNA \
                                 ? (char *)(X) \
                                 : "wrong type argument")
@@ -406,11 +428,5 @@ extern struct errdesc scm_errmsgs[];
 
 
 \f
-#ifdef __STDC__
-
-#else /* STDC */
-
-#endif /* STDC */
-
 
 #endif  /* __SCMH */