limits.h 1.3 KiB raw
1
#ifndef LIMITS_H
2
#define LIMITS_H
3
4
#include "riscv.h"
5
6
#define MAX_NODES            32768
7
#define MAX_UNION_VARIANTS   128
8
#define MAX_RECORD_FIELDS    32
9
#define MAX_ARRAY_ELEMS      1024
10
#define MAX_BLOCK_STATEMENTS 512
11
#define MAX_SWITCH_CASES     128
12
#define MAX_CASE_PATTERNS    64
13
#define MAX_QUALIFIED_NAME   128
14
#define MAX_FN_PARAMS        ((A7 - A0) + 1)
15
#define MAX_FN_THROWS        8
16
#define MAX_FN_LOCALS        32
17
#define MAX_SYMBOLS          16384
18
#define MAX_SCOPES           8192
19
#define MAX_SCOPE_SYMBOLS    512
20
#define MAX_INSTRS           (1 << 20)
21
#define MAX_FN_PATCHES       4096
22
#define MAX_RET_PATCHES      256
23
#define MAX_BRK_PATCHES      512
24
#define MAX_TYPES            4096
25
#define MAX_FRAME_SIZE       (512 * 1024)
26
#define MAX_STRING_LITERALS  1024
27
#define MAX_CONSTANTS        256
28
#define MAX_TRY_CATCHES      8
29
30
/* Pool size for variable-length node pointer arrays.
31
 * Replaces per-node embedded arrays to shrink node_t. */
32
#define MAX_NODEPTR_POOL (MAX_NODES * 4)
33
34
/* Pool sizes for type_t sub-arrays (variants, fields, params, throws). */
35
#define MAX_SYMPTR_POOL  16384
36
#define MAX_TYPEPTR_POOL 16384
37
38
/* Maximum values for module system */
39
#define MAX_MODULES     48
40
#define MAX_MODULE_DEPS 24
41
#define MAX_PATH_LEN    1024
42
#define MAX_IMPORTS     32
43
44
#endif