~ubuntu-branches/ubuntu/intrepid/ecl/intrepid

« back to all changes in this revision

Viewing changes to msvc/ecl/config.h.msvc6

  • Committer: Bazaar Package Importer
  • Author(s): Peter Van Eynde
  • Date: 2006-05-17 02:46:26 UTC
  • Revision ID: james.westby@ubuntu.com-20060517024626-lljr08ftv9g9vefl
Tags: upstream-0.9h-20060510
ImportĀ upstreamĀ versionĀ 0.9h-20060510

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    config.h.in -- Template configuration file.
 
3
*/
 
4
/*
 
5
    Copyright (c) 1990, Giuseppe Attardi.
 
6
    Copyright (c) 2001, Juan Jose Garcia Ripoll.
 
7
 
 
8
    ECoLisp is free software; you can redistribute it and/or
 
9
    modify it under the terms of the GNU Library General Public
 
10
    License as published by the Free Software Foundation; either
 
11
    version 2 of the License, or (at your option) any later version.
 
12
 
 
13
    See file '../Copyright' for full details.
 
14
*/
 
15
 
 
16
/*
 
17
 * FEATURES LINKED IN
 
18
 */
 
19
/* Always use CLOS                                                      */
 
20
#define CLOS
 
21
 
 
22
/* Use Boehm's garbage collector                                        */
 
23
#define GBC_BOEHM 1
 
24
#ifdef GBC_BOEHM
 
25
#include <ecl/gc/gc.h>
 
26
#define ECL_DYNAMIC_VV
 
27
#endif
 
28
 
 
29
/* Use GNU Multiple Precision library for bignums                       */ 
 
30
#define WITH_GMP 1
 
31
#include <ecl/gmp.h>
 
32
 
 
33
/* Userland threads?                                                    */
 
34
/* #undef ECL_THREADS */
 
35
#ifdef ECL_THREADS
 
36
# define GC_THREADS
 
37
#endif
 
38
 
 
39
/* Network streams                                                      */
 
40
#define TCP 1
 
41
#if defined(TCP) && (defined(_MSC_VER) || defined(mingw32))
 
42
# define ECL_WSOCK
 
43
#endif
 
44
 
 
45
/* Foreign functions interface                                          */
 
46
#define ECL_FFI
 
47
 
 
48
/*
 
49
 * C TYPES AND SYSTEM LIMITS
 
50
 */
 
51
/*
 
52
 * The integer type
 
53
 *
 
54
 * cl_fixnum must be an integer type, large enough to hold a pointer.
 
55
 * Ideally, according to the ISOC99 standard, we should use intptr_t,
 
56
 * but the required headers are not present in all systems. Hence we
 
57
 * use autoconf to guess the following values.
 
58
 */
 
59
#define FIXNUM_BITS             32
 
60
#define MOST_POSITIVE_FIXNUM    ((cl_fixnum)536870911)
 
61
#define MOST_NEGATIVE_FIXNUM    ((cl_fixnum)-536870912)
 
62
 
 
63
typedef int cl_fixnum;
 
64
typedef unsigned int cl_index;
 
65
typedef unsigned int cl_hashkey;
 
66
 
 
67
/*
 
68
 * The character type
 
69
 */
 
70
#define CHAR_CODE_LIMIT         256
 
71
 
 
72
/*
 
73
 * Array limits
 
74
 */
 
75
#define ARANKLIM        64              /*  array rank limit            */
 
76
#ifdef GBC_BOEHM
 
77
#define ADIMLIM         536870911       /*  array dimension limit       */
 
78
#define ATOTLIM         536870911       /*  array total limit           */
 
79
#else
 
80
#define ADIMLIM         16*1024*1024    /*  array dimension limit       */
 
81
#define ATOTLIM         16*1024*1024    /*  array total limit           */
 
82
#endif
 
83
 
 
84
/*
 
85
 * Function limits.
 
86
 *
 
87
 * In general, any of these limits must fit in a "signed int".
 
88
 */
 
89
/*      Maximum number of function arguments                            */
 
90
#define CALL_ARGUMENTS_LIMIT 65536
 
91
 
 
92
/*      Maximum number of required arguments                            */
 
93
#define LAMBDA_PARAMETERS_LIMIT 64
 
94
 
 
95
/*      Numb. of args. which can be passed using the C stack            */
 
96
/*      See cmplam.lsp if you change this value                         */
 
97
#define C_ARGUMENTS_LIMIT 64
 
98
 
 
99
/*      Maximum number of output arguments                              */
 
100
#define ECL_MULTIPLE_VALUES_LIMIT 64
 
101
 
 
102
/* A setjmp that does not save signals                                  */
 
103
#define ecl_setjmp      setjmp
 
104
#define ecl_longjmp     longjmp
 
105
 
 
106
/*
 
107
 * Structure/Instance limits. The index to a slot must fit in the
 
108
 * "int" type. We also require ECL_SLOTS_LIMIT <= CALL_ARGUMENTS_LIMIT
 
109
 * because constructors typically require as many arguments as slots,
 
110
 * or more.
 
111
 */
 
112
#define ECL_SLOTS_LIMIT 32768
 
113
 
 
114
/* Missing integer types */
 
115
typedef char int8_t;
 
116
typedef short int16_t;
 
117
typedef int int32_t;
 
118
typedef unsigned char uint8_t;
 
119
typedef unsigned short uint16_t;
 
120
typedef unsigned int uint32_t;
 
121
 
 
122
/* -CUT-: Everything below this mark will not be installed              */
 
123
/* -------------------------------------------------------------------- *
 
124
 *      BUILD OPTIONS WHICH NEED NOT BE EXPORTED                        *
 
125
 * -------------------------------------------------------------------- */
 
126
/*
 
127
 * FEATURES LINKED IN:
 
128
 */
 
129
 
 
130
/* CLX                                                                  */
 
131
#define CLX 1
 
132
/* Locatives                                                            */
 
133
/* #undef LOCATIVE */
 
134
/* Use old MIT LOOP macro system                                        */
 
135
/* #undef ECL_OLD_LOOP */
 
136
 
 
137
/* Define this if you want a runtime version only without compiler      */
 
138
/* #undef RUNTIME */
 
139
/* Profile tool                                                         */
 
140
/* #undef PROFILE */
 
141
/* Program Development Environment                                      */
 
142
/* #undef PDE */
 
143
 
 
144
/* Tcl/Tk library                                                       */
 
145
/* #undef TK */
 
146
 
 
147
/* Allow loading dynamically linked code                                */
 
148
#define ENABLE_DLOPEN 1
 
149
 
 
150
/* Undefine this if you do not want ECL to check for circular lists     */
 
151
#define ECL_SAFE
 
152
 
 
153
/* Allow STREAM operations to work on arbitrary objects                 */
 
154
#define ECL_CLOS_STREAMS 1
 
155
 
 
156
/* Use CMU Common-Lisp's FORMAT routine                                 */
 
157
#define ECL_CMU_FORMAT 1
 
158
 
 
159
/* Bytecodes and arguments are 8 and 16 bits large, respectively        */
 
160
/* #undef ECL_SMALL_BYTECODES */
 
161
 
 
162
/* We have non-portable implementation of FFI calls                     */
 
163
#define ECL_DYNAMIC_FFI 1
 
164
 
 
165
/*
 
166
 * SYSTEM FEATURES:
 
167
 */
 
168
 
 
169
/* Stack grows downwards                                                */
 
170
#define DOWN_STACK 1
 
171
/* Arguments cannot be accessed as array                                */
 
172
/* #undef NO_ARGS_ARRAY */
 
173
/* Most significant byte first                                          */
 
174
/* #undef WORDS_BIGENDIAN */
 
175
/* Has <sys/resource.h>                                                 */
 
176
/* #undef HAVE_SYS_RESOURCE_H */
 
177
/* #undef HAVE_ULIMIT_H */
 
178
/* High precision timer                                                 */
 
179
/* #undef HAVE_NANOSLEEP */
 
180
/* Float version if isnan()                                             */
 
181
/* #undef HAVE_ISNANF */
 
182
/* float.h for epsilons, maximum real numbers, etc                      */
 
183
#define HAVE_FLOAT_H 1
 
184
/* select()                                                             */
 
185
/* #undef HAVE_SELECT */
 
186
/* #undef HAVE_SYS_IOCTL_H */
 
187
/* putenv() or setenv()                                                 */
 
188
#undef HAVE_SETENV
 
189
#define HAVE_PUTENV 1
 
190
/* times() and sys/times.h                                              */
 
191
/* #undef HAVE_TIMES */
 
192
/* user home directory, user name, etc...                               */
 
193
/* #undef HAVE_PW_H */
 
194
/* symbolic links and checking their existence                          */
 
195
/* #undef HAVE_LSTAT */
 
196
/* safe creation of temporary files                                     */
 
197
/* #undef HAVE_MKSTEMP */
 
198
/* timer for userland threads                                           */
 
199
/* #undef HAVE_ALARM */
 
200
/* filesytem                                                            */
 
201
/* #undef HAVE_DIRENT_H */
 
202
/* dynamic linking of libraries                                         */
 
203
/* #undef HAVE_DLFCN_H */
 
204
/* #undef HAVE_LINK_H */
 
205
/* #undef HAVE_MACH_O_DYLD_H */
 
206
/* POSIX signals                                                        */
 
207
/* #undef HAVE_SIGPROCMASK */
 
208
/* isatty() checks whether a file is connected to a                     */ 
 
209
#define HAVE_ISATTY  1 
 
210
/* compiler understands long long                                       */ 
 
211
#define HAVE_LONG_LONG 1
 
212
/* the tzset() function gets the current time zone                      */
 
213
#define HAVE_TZSET 1
 
214
 
 
215
/* what characters are used to mark beginning of new line               */
 
216
#define ECL_NEWLINE_IS_CRLF 1
 
217
/* #undef ECL_NEWLINE_IS_LFCR */
 
218
 
 
219
/*
 
220
 * PARAMETERS:
 
221
 */
 
222
 
 
223
/*
 
224
 * Memory limits for the old garbage collector.
 
225
 */
 
226
#define LISP_PAGESIZE   2048    /* Page size in bytes                   */
 
227
#define MAXPAGE 16384           /* Maximum Memory Size                  */
 
228
 
 
229
/*
 
230
 * The lisp environment has several stacks. These are their limits:
 
231
 */
 
232
#define BDSSIZE 2048            /* Size of Binding Stack                */
 
233
#define BDSGETA 16              /* Safety zone of BDS                   */
 
234
#define FRSSIZE 1024            /* Size of Frame Stack                  */
 
235
#define FRSGETA 16              /* Safety zone of FRS                   */
 
236
#ifdef THREADS
 
237
#define CSSIZE  7500            /* Size of C Stack of each thread       */
 
238
#define CSGETA  500
 
239
#else
 
240
#define CSSIZE  20000           /* Size of C Stack                      */
 
241
#define CSGETA  4000
 
242
#endif
 
243
 
 
244
/* We reserve these many bytes for computation with bignums registers   */
 
245
#define BIGNUM_REGISTER_SIZE 16
 
246
 
 
247
/*
 
248
 * Macros that depend on these system features.
 
249
 */
 
250
#if defined(sparc) || defined(i386) || defined(mips)
 
251
#  define       stack_align(n)  (((n) + 0x7) & ~0x7)
 
252
#else
 
253
#  define       stack_align(n)  (((n) + 03) & ~03)
 
254
#endif
 
255
 
 
256
/* #undef FILE_CNT */
 
257
#if 0 == 1
 
258
#  define FILE_CNT(fp)  ((fp)->_IO_read_end - (fp)->_IO_read_ptr)
 
259
#endif
 
260
#if 0 == 2
 
261
#  define FILE_CNT(fp)  ((fp)->_r)
 
262
#endif
 
263
#if 3 == 3
 
264
#  define FILE_CNT(fp)  ((fp)->_cnt)
 
265
#endif
 
266
 
 
267
#if defined(MSDOS) || defined(cygwin) || defined(mingw32) || defined(_MSC_VER)
 
268
#  define IS_DIR_SEPARATOR(x) ((x=='/')||(x=='\\'))
 
269
#  define DIR_SEPARATOR '/'
 
270
#  define PATH_SEPARATOR        ';'
 
271
#else
 
272
#  define IS_DIR_SEPARATOR(x) (x=='/')
 
273
#  define DIR_SEPARATOR '/'
 
274
#  define PATH_SEPARATOR        ':'
 
275
#endif /* MSDOS */
 
276
 
 
277
#define ECL_ARCHITECTURE "PENTIUM4"
 
278
 
 
279
#define strcasecmp _stricmp
 
280
#define isnan _isnan
 
281
#define finite _finite
 
282
#define sleep _sleep
 
283
 
 
284
#include "@ECL_FPE_CODE@"