~ chicken-core (chicken-5) e6c87a718936b070ce8983f0e95cbead7959629c
commit e6c87a718936b070ce8983f0e95cbead7959629c
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Sun Dec 19 13:41:15 2010 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Sun Dec 19 13:41:15 2010 +0100
added stupid shit macros to include required functionality ofor ISO number predicates; adjust stub-toplevel function name decl for new naming scheme
diff --git a/chicken.h b/chicken.h
index 85b67b3a..bbcf420d 100644
--- a/chicken.h
+++ b/chicken.h
@@ -39,6 +39,18 @@
#define C_MAJOR_VERSION 4
#define C_MINOR_VERSION 6
+#ifndef _ISOC99_SOURCE
+# define _ISOC99_SOURCE
+#endif
+
+#ifndef _BSD_SOURCE
+# define _BSD_SOURCE
+#endif
+
+#ifndef _SVID_SOURCE
+# define _SVID_SOURCE
+#endif
+
/*
* N.B. This file MUST not rely upon "chicken-config.h"
*/
@@ -98,6 +110,11 @@
# include <kernel/image.h>
#endif
+#ifndef _MSC_VAR
+# include <strings.h>
+#endif
+
+
/* Byteorder in machine word */
#if defined(__MINGW32__)
@@ -132,18 +149,12 @@
# if HAVE_ALLOCA_H
# define alloca _alloca
# endif
-#elif !defined(__GNUC__) && !defined(__WATCOMC__)
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# elif defined(_AIX)
-# pragma alloca
-# elif !defined(alloca) /* predefined by HP cc +Olibcalls */
- char *alloca ();
-# endif
-#elif (defined(__sun__) && defined(__svr4__)) || defined(__sgi__)
-# if HAVE_ALLOCA_H
-# include <alloca.h>
-# endif
+#endif
+
+#ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+#elif !defined(alloca) /* predefined by HP cc +Olibcalls */
+ char *alloca ();
#endif
@@ -795,7 +806,7 @@ DECL_C_PROC_p0 (128, 1,0,0,0,0,0,0,0)
#define CHICKEN_global_ref(root) C_u_i_car(((C_GC_ROOT *)(root))->value)
#define CHICKEN_global_set(root, x) C_mutate(&C_u_i_car(((C_GC_ROOT *)(root))->value), (x))
-#define CHICKEN_default_toplevel ((void *)C_default_stub_toplevel)
+#define CHICKEN_default_toplevel ((void *)C_default_5fstub_toplevel)
#define C_align4(n) (((n) + 3) & ~3)
#define C_align8(n) (((n) + 7) & ~7)
@@ -992,8 +1003,8 @@ extern double trunc(double);
#define C_c_f64vector_or_null(x) ((double *)C_srfi_4_vector_or_null(x))
#define C_c_pointer_vector(x) ((void **)C_data_pointer(C_block_item((x), 2)))
-#define C_isnan(f) (!((f) == (f)))
-#define C_isinf(f) ((f) == (f) + (f) && (f) != 0.0)
+#define C_isnan(f) isnan(f)
+#define C_isinf(f) isinf(f)
#ifdef C_STRESS_TEST
# define C_STRESS_FAILURE 3
@@ -1878,7 +1889,7 @@ C_fctexport int CHICKEN_eval_string(char * str,C_word *result);
C_fctexport int CHICKEN_eval(C_word exp,C_word *result);
C_fctexport int CHICKEN_yield();
-C_fctexport void C_default_stub_toplevel(C_word c,C_word d,C_word k) C_noret;
+C_fctexport void C_default_5fstub_toplevel(C_word c,C_word d,C_word k) C_noret;
/* Inline functions: */
Trap