FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
emscripten/tests/lua/src/luaconf.h at universal-python · JavaScriptIOT/emscripten · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
JavaScriptIOT
/
emscripten
Public
forked from
emscripten-core/emscripten
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Wiki
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
emscripten
/
tests
/
lua
/
src
/
luaconf.h
Copy path
More file actions
More file actions
Latest commit
History
History
History
551 lines (427 loc) · 15.1 KB
Breadcrumbs
emscripten
/
tests
/
lua
/
src
/
luaconf.h
Copy path
File metadata and controls
551 lines (427 loc) · 15.1 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
/*
** $Id: luaconf.h,v 1.176 2013/03/16 21:10:18 roberto Exp $
** Configuration file for Lua
** See Copyright Notice in lua.h
*/
#ifndef
lconfig_h
#define
lconfig_h
#include
<limits.h>
#include
<stddef.h>
/*
** ==================================================================
** Search for "@@" to find all configurable definitions.
** ===================================================================
*/
/*
@@ LUA_ANSI controls the use of non-ansi features.
** CHANGE it (define it) if you want Lua to avoid the use of any
** non-ansi feature or library.
*/
#if
!defined(
LUA_ANSI
)
&&
defined(
__STRICT_ANSI__
)
#define
LUA_ANSI
#endif
#if
!defined(
LUA_ANSI
)
&&
defined(
_WIN32
)
&&
!defined(
_WIN32_WCE
)
#define
LUA_WIN
/* enable goodies for regular Windows platforms */
#endif
#if
defined(
LUA_WIN
)
#define
LUA_DL_DLL
#define
LUA_USE_AFORMAT
/* assume 'printf' handles 'aA' specifiers */
#endif
#if
defined(
LUA_USE_LINUX
)
#define
LUA_USE_POSIX
#define
LUA_USE_DLOPEN
/* needs an extra library: -ldl */
#define
LUA_USE_READLINE
/* needs some extra libraries */
#define
LUA_USE_STRTODHEX
/* assume 'strtod' handles hex formats */
#define
LUA_USE_AFORMAT
/* assume 'printf' handles 'aA' specifiers */
#define
LUA_USE_LONGLONG
/* assume support for long long */
#endif
#if
defined(
LUA_USE_MACOSX
)
#define
LUA_USE_POSIX
#define
LUA_USE_DLOPEN
/* does not need -ldl */
#define
LUA_USE_READLINE
/* needs an extra library: -lreadline */
#define
LUA_USE_STRTODHEX
/* assume 'strtod' handles hex formats */
#define
LUA_USE_AFORMAT
/* assume 'printf' handles 'aA' specifiers */
#define
LUA_USE_LONGLONG
/* assume support for long long */
#endif
/*
@@ LUA_USE_POSIX includes all functionality listed as X/Open System
@* Interfaces Extension (XSI).
** CHANGE it (define it) if your system is XSI compatible.
*/
#if
defined(
LUA_USE_POSIX
)
#define
LUA_USE_MKSTEMP
#define
LUA_USE_ISATTY
#define
LUA_USE_POPEN
#define
LUA_USE_ULONGJMP
#define
LUA_USE_GMTIME_R
#endif
/*
@@ LUA_PATH_DEFAULT is the default path that Lua uses to look for
@* Lua libraries.
@@ LUA_CPATH_DEFAULT is the default path that Lua uses to look for
@* C libraries.
** CHANGE them if your machine has a non-conventional directory
** hierarchy or if you want to install your libraries in
** non-conventional directories.
*/
#if
defined(
_WIN32
)
/* { */
/*
** In Windows, any exclamation mark ('!') in the path is replaced by the
** path of the directory of the executable file of the current process.
*/
#define
LUA_LDIR
"!\\lua\\"
#define
LUA_CDIR
"!\\"
#define
LUA_PATH_DEFAULT
\
LUA_LDIR"?.lua;" LUA_LDIR"?\\init.lua;" \
LUA_CDIR"?.lua;" LUA_CDIR"?\\init.lua;" ".\\?.lua"
#define
LUA_CPATH_DEFAULT
\
LUA_CDIR"?.dll;" LUA_CDIR"loadall.dll;" ".\\?.dll"
#else
/* }{ */
#define
LUA_VDIR
LUA_VERSION_MAJOR "." LUA_VERSION_MINOR "/"
#define
LUA_ROOT
"/usr/local/"
#define
LUA_LDIR
LUA_ROOT "share/lua/" LUA_VDIR
#define
LUA_CDIR
LUA_ROOT "lib/lua/" LUA_VDIR
#define
LUA_PATH_DEFAULT
\
LUA_LDIR"?.lua;" LUA_LDIR"?/init.lua;" \
LUA_CDIR"?.lua;" LUA_CDIR"?/init.lua;" "./?.lua"
#define
LUA_CPATH_DEFAULT
\
LUA_CDIR"?.so;" LUA_CDIR"loadall.so;" "./?.so"
#endif
/* } */
/*
@@ LUA_DIRSEP is the directory separator (for submodules).
** CHANGE it if your machine does not use "/" as the directory separator
** and is not Windows. (On Windows Lua automatically uses "\".)
*/
#if
defined(
_WIN32
)
#define
LUA_DIRSEP
"\\"
#else
#define
LUA_DIRSEP
"/"
#endif
/*
@@ LUA_ENV is the name of the variable that holds the current
@@ environment, used to access global names.
** CHANGE it if you do not like this name.
*/
#define
LUA_ENV
"_ENV"
/*
@@ LUA_API is a mark for all core API functions.
@@ LUALIB_API is a mark for all auxiliary library functions.
@@ LUAMOD_API is a mark for all standard library opening functions.
** CHANGE them if you need to define those functions in some special way.
** For instance, if you want to create one Windows DLL with the core and
** the libraries, you may want to use the following definition (define
** LUA_BUILD_AS_DLL to get it).
*/
#if
defined(
LUA_BUILD_AS_DLL
)
/* { */
#if
defined(
LUA_CORE
)
||
defined(
LUA_LIB
)
/* { */
#define
LUA_API
__declspec(dllexport)
#else
/* }{ */
#define
LUA_API
__declspec(dllimport)
#endif
/* } */
#else
/* }{ */
#define
LUA_API
extern
#endif
/* } */
/* more often than not the libs go together with the core */
#define
LUALIB_API
LUA_API
#define
LUAMOD_API
LUALIB_API
/*
@@ LUAI_FUNC is a mark for all extern functions that are not to be
@* exported to outside modules.
@@ LUAI_DDEF and LUAI_DDEC are marks for all extern (const) variables
@* that are not to be exported to outside modules (LUAI_DDEF for
@* definitions and LUAI_DDEC for declarations).
** CHANGE them if you need to mark them in some special way. Elf/gcc
** (versions 3.2 and later) mark them as "hidden" to optimize access
** when Lua is compiled as a shared library. Not all elf targets support
** this attribute. Unfortunately, gcc does not offer a way to check
** whether the target offers that support, and those without support
** give a warning about it. To avoid these warnings, change to the
** default definition.
*/
#if
defined(
__GNUC__
)
&&
((
__GNUC__
*
100
+
__GNUC_MINOR__
) >=
302
)
&&
\
defined(
__ELF__
)
/* { */
#define
LUAI_FUNC
__attribute__((visibility("hidden"))) extern
#define
LUAI_DDEC
LUAI_FUNC
#define
LUAI_DDEF
/* empty */
#else
/* }{ */
#define
LUAI_FUNC
extern
#define
LUAI_DDEC
extern
#define
LUAI_DDEF
/* empty */
#endif
/* } */
/*
@@ LUA_QL describes how error messages quote program elements.
** CHANGE it if you want a different appearance.
*/
#define
LUA_QL
(
x
) "'" x "'"
#define
LUA_QS
LUA_QL("%s")
/*
@@ LUA_IDSIZE gives the maximum size for the description of the source
@* of a function in debug information.
** CHANGE it if you want a different size.
*/
#define
LUA_IDSIZE
60
/*
@@ luai_writestring/luai_writeline define how 'print' prints its results.
** They are only used in libraries and the stand-alone program. (The #if
** avoids including 'stdio.h' everywhere.)
*/
#if
defined(
LUA_LIB
)
||
defined(
lua_c
)
#include
<stdio.h>
#define
luai_writestring
(
s
,
l
) fwrite((s), sizeof(char), (l), stdout)
#define
luai_writeline
() (luai_writestring("\n", 1), fflush(stdout))
#endif
/*
@@ luai_writestringerror defines how to print error messages.
** (A format string with one argument is enough for Lua...)
*/
#define
luai_writestringerror
(
s
,
p
) \
(fprintf(stderr, (s), (p)), fflush(stderr))
/*
@@ LUAI_MAXSHORTLEN is the maximum length for short strings, that is,
** strings that are internalized. (Cannot be smaller than reserved words
** or tags for metamethods, as these strings must be internalized;
** #("function") = 8, #("__newindex") = 10.)
*/
#define
LUAI_MAXSHORTLEN
40
/*
** {==================================================================
** Compatibility with previous versions
** ===================================================================
*/
/*
@@ LUA_COMPAT_ALL controls all compatibility options.
** You can define it to get all options, or change specific options
** to fit your specific needs.
*/
#if
defined(
LUA_COMPAT_ALL
)
/* { */
/*
@@ LUA_COMPAT_UNPACK controls the presence of global 'unpack'.
** You can replace it with 'table.unpack'.
*/
#define
LUA_COMPAT_UNPACK
/*
@@ LUA_COMPAT_LOADERS controls the presence of table 'package.loaders'.
** You can replace it with 'package.searchers'.
*/
#define
LUA_COMPAT_LOADERS
/*
@@ macro 'lua_cpcall' emulates deprecated function lua_cpcall.
** You can call your C function directly (with light C functions).
*/
#define
lua_cpcall
(
L
,
f
,
u
) \
(lua_pushcfunction(L, (f)), \
lua_pushlightuserdata(L,(u)), \
lua_pcall(L,1,0,0))
/*
@@ LUA_COMPAT_LOG10 defines the function 'log10' in the math library.
** You can rewrite 'log10(x)' as 'log(x, 10)'.
*/
#define
LUA_COMPAT_LOG10
/*
@@ LUA_COMPAT_LOADSTRING defines the function 'loadstring' in the base
** library. You can rewrite 'loadstring(s)' as 'load(s)'.
*/
#define
LUA_COMPAT_LOADSTRING
/*
@@ LUA_COMPAT_MAXN defines the function 'maxn' in the table library.
*/
#define
LUA_COMPAT_MAXN
/*
@@ The following macros supply trivial compatibility for some
** changes in the API. The macros themselves document how to
** change your code to avoid using them.
*/
#define
lua_strlen
(
L
,
i
) lua_rawlen(L, (i))
#define
lua_objlen
(
L
,
i
) lua_rawlen(L, (i))
#define
lua_equal
(
L
,
idx1
,
idx2
) lua_compare(L,(idx1),(idx2),LUA_OPEQ)
#define
lua_lessthan
(
L
,
idx1
,
idx2
) lua_compare(L,(idx1),(idx2),LUA_OPLT)
/*
@@ LUA_COMPAT_MODULE controls compatibility with previous
** module functions 'module' (Lua) and 'luaL_register' (C).
*/
#define
LUA_COMPAT_MODULE
#endif
/* } */
/* }================================================================== */
/*
@@ LUAI_BITSINT defines the number of bits in an int.
** CHANGE here if Lua cannot automatically detect the number of bits of
** your machine. Probably you do not need to change this.
*/
/* avoid overflows in comparison */
#if
INT_MAX
-
20
<
32760
/* { */
#define
LUAI_BITSINT
16
#elif
INT_MAX
>
2147483640L
/* }{ */
/* int has at least 32 bits */
#define
LUAI_BITSINT
32
#else
/* }{ */
#error
"you must define LUA_BITSINT with number of bits in an integer"
#endif
/* } */
/*
@@ LUA_INT32 is an signed integer with exactly 32 bits.
@@ LUAI_UMEM is an unsigned integer big enough to count the total
@* memory used by Lua.
@@ LUAI_MEM is a signed integer big enough to count the total memory
@* used by Lua.
** CHANGE here if for some weird reason the default definitions are not
** good enough for your machine. Probably you do not need to change
** this.
*/
#if
LUAI_BITSINT
>=
32
/* { */
#define
LUA_INT32
int
#define
LUAI_UMEM
size_t
#define
LUAI_MEM
ptrdiff_t
#else
/* }{ */
/* 16-bit ints */
#define
LUA_INT32
long
#define
LUAI_UMEM
unsigned long
#define
LUAI_MEM
long
#endif
/* } */
/*
@@ LUAI_MAXSTACK limits the size of the Lua stack.
** CHANGE it if you need a different limit. This limit is arbitrary;
** its only purpose is to stop Lua to consume unlimited stack
** space (and to reserve some numbers for pseudo-indices).
*/
#if
LUAI_BITSINT
>=
32
#define
LUAI_MAXSTACK
1000000
#else
#define
LUAI_MAXSTACK
15000
#endif
/* reserve some space for error handling */
#define
LUAI_FIRSTPSEUDOIDX
(-LUAI_MAXSTACK - 1000)
/*
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
** CHANGE it if it uses too much C-stack space.
*/
#define
LUAL_BUFFERSIZE
BUFSIZ
/*
** {==================================================================
@@ LUA_NUMBER is the type of numbers in Lua.
** CHANGE the following definitions only if you want to build Lua
** with a number type different from double. You may also need to
** change lua_number2int & lua_number2integer.
** ===================================================================
*/
#define
LUA_NUMBER_DOUBLE
#define
LUA_NUMBER
double
/*
@@ LUAI_UACNUMBER is the result of an 'usual argument conversion'
@* over a number.
*/
#define
LUAI_UACNUMBER
double
/*
@@ LUA_NUMBER_SCAN is the format for reading numbers.
@@ LUA_NUMBER_FMT is the format for writing numbers.
@@ lua_number2str converts a number to a string.
@@ LUAI_MAXNUMBER2STR is maximum size of previous conversion.
*/
#define
LUA_NUMBER_SCAN
"%lf"
#define
LUA_NUMBER_FMT
"%.14g"
#define
lua_number2str
(
s
,
n
) sprintf((s), LUA_NUMBER_FMT, (n))
#define
LUAI_MAXNUMBER2STR
32
/* 16 digits, sign, point, and \0 */
/*
@@ l_mathop allows the addition of an 'l' or 'f' to all math operations
*/
#define
l_mathop
(
x
) (x)
/*
@@ lua_str2number converts a decimal numeric string to a number.
@@ lua_strx2number converts an hexadecimal numeric string to a number.
** In C99, 'strtod' does both conversions. C89, however, has no function
** to convert floating hexadecimal strings to numbers. For these
** systems, you can leave 'lua_strx2number' undefined and Lua will
** provide its own implementation.
*/
#define
lua_str2number
(
s
,
p
) strtod((s), (p))
#if
defined(
LUA_USE_STRTODHEX
)
#define
lua_strx2number
(
s
,
p
) strtod((s), (p))
#endif
/*
@@ The luai_num* macros define the primitive operations over numbers.
*/
/* the following operations need the math library */
#if
defined(
lobject_c
)
||
defined(
lvm_c
)
#include
<math.h>
#define
luai_nummod
(
L
,
a
,
b
) ((a) - l_mathop(floor)((a)/(b))*(b))
#define
luai_numpow
(
L
,
a
,
b
) (l_mathop(pow)(a,b))
#endif
/* these are quite standard operations */
#if
defined(
LUA_CORE
)
#define
luai_numadd
(
L
,
a
,
b
) ((a)+(b))
#define
luai_numsub
(
L
,
a
,
b
) ((a)-(b))
#define
luai_nummul
(
L
,
a
,
b
) ((a)*(b))
#define
luai_numdiv
(
L
,
a
,
b
) ((a)/(b))
#define
luai_numunm
(
L
,
a
) (-(a))
#define
luai_numeq
(
a
,
b
) ((a)==(b))
#define
luai_numlt
(
L
,
a
,
b
) ((a)<(b))
#define
luai_numle
(
L
,
a
,
b
) ((a)<=(b))
#define
luai_numisnan
(
L
,
a
) (!luai_numeq((a), (a)))
#endif
/*
@@ LUA_INTEGER is the integral type used by lua_pushinteger/lua_tointeger.
** CHANGE that if ptrdiff_t is not adequate on your machine. (On most
** machines, ptrdiff_t gives a good choice between int or long.)
*/
#define
LUA_INTEGER
ptrdiff_t
/*
@@ LUA_UNSIGNED is the integral type used by lua_pushunsigned/lua_tounsigned.
** It must have at least 32 bits.
*/
#define
LUA_UNSIGNED
unsigned LUA_INT32
/*
** Some tricks with doubles
*/
#if
defined(
LUA_NUMBER_DOUBLE
)
&&
!defined(
LUA_ANSI
)
/* { */
/*
** The next definitions activate some tricks to speed up the
** conversion from doubles to integer types, mainly to LUA_UNSIGNED.
**
@@ LUA_MSASMTRICK uses Microsoft assembler to avoid clashes with a
** DirectX idiosyncrasy.
**
@@ LUA_IEEE754TRICK uses a trick that should work on any machine
** using IEEE754 with a 32-bit integer type.
**
@@ LUA_IEEELL extends the trick to LUA_INTEGER; should only be
** defined when LUA_INTEGER is a 32-bit integer.
**
@@ LUA_IEEEENDIAN is the endianness of doubles in your machine
** (0 for little endian, 1 for big endian); if not defined, Lua will
** check it dynamically for LUA_IEEE754TRICK (but not for LUA_NANTRICK).
**
@@ LUA_NANTRICK controls the use of a trick to pack all types into
** a single double value, using NaN values to represent non-number
** values. The trick only works on 32-bit machines (ints and pointers
** are 32-bit values) with numbers represented as IEEE 754-2008 doubles
** with conventional endianess (12345678 or 87654321), in CPUs that do
** not produce signaling NaN values (all NaNs are quiet).
*/
/* Microsoft compiler on a Pentium (32 bit) ? */
#if
defined(
LUA_WIN
)
&&
defined(
_MSC_VER
)
&&
defined(
_M_IX86
)
/* { */
#define
LUA_MSASMTRICK
#define
LUA_IEEEENDIAN
0
#define
LUA_NANTRICK
/* pentium 32 bits? */
#elif
defined(
__i386__
)
||
defined(
__i386
)
||
defined(
__X86__
)
/* }{ */
#define
LUA_IEEE754TRICK
#define
LUA_IEEELL
#define
LUA_IEEEENDIAN
0
#define
LUA_NANTRICK
/* pentium 64 bits? */
#elif
defined(
__x86_64
)
/* }{ */
#define
LUA_IEEE754TRICK
#define
LUA_IEEEENDIAN
0
#elif
defined(
__POWERPC__
)
||
defined(
__ppc__
)
/* }{ */
#define
LUA_IEEE754TRICK
#define
LUA_IEEEENDIAN
1
#else
/* }{ */
/* assume IEEE754 and a 32-bit integer type */
#define
LUA_IEEE754TRICK
#endif
/* } */
#endif
/* } */
/* }================================================================== */
/* =================================================================== */
/*
** Local configuration. You can use this space to add your redefinitions
** without modifying the main part of the file.
*/
#endif
Back
|
FazBrowse Home
|
New Git URL