|
14 | 14 | // Constants — Well-known TypeIDs (must match Julia TypeRegistry) |
15 | 15 | // ============================================================ |
16 | 16 |
|
17 | | -const TYPE_ANY = 0; |
18 | | -const TYPE_BOTTOM = 1; |
19 | | -const TYPE_NOTHING = 2; |
20 | | -const TYPE_MISSING = 3; |
21 | | -const TYPE_BOOL = 4; |
22 | | -const TYPE_INT8 = 5; |
23 | | -const TYPE_INT16 = 6; |
24 | | -const TYPE_INT32 = 7; |
25 | | -const TYPE_INT64 = 8; |
26 | | -const TYPE_INT128 = 9; |
27 | | -const TYPE_UINT8 = 10; |
28 | | -const TYPE_UINT16 = 11; |
29 | | -const TYPE_UINT32 = 12; |
30 | | -const TYPE_UINT64 = 13; |
31 | | -const TYPE_UINT128 = 14; |
32 | | -const TYPE_FLOAT16 = 15; |
33 | | -const TYPE_FLOAT32 = 16; |
34 | | -const TYPE_FLOAT64 = 17; |
35 | | -const TYPE_CHAR = 18; |
36 | | -const TYPE_STRING = 19; |
37 | | -const TYPE_SYMBOL = 20; |
| 17 | +var TYPE_ANY = 0; |
| 18 | +var TYPE_BOTTOM = 1; |
| 19 | +var TYPE_NOTHING = 2; |
| 20 | +var TYPE_MISSING = 3; |
| 21 | +var TYPE_BOOL = 4; |
| 22 | +var TYPE_INT8 = 5; |
| 23 | +var TYPE_INT16 = 6; |
| 24 | +var TYPE_INT32 = 7; |
| 25 | +var TYPE_INT64 = 8; |
| 26 | +var TYPE_INT128 = 9; |
| 27 | +var TYPE_UINT8 = 10; |
| 28 | +var TYPE_UINT16 = 11; |
| 29 | +var TYPE_UINT32 = 12; |
| 30 | +var TYPE_UINT64 = 13; |
| 31 | +var TYPE_UINT128 = 14; |
| 32 | +var TYPE_FLOAT16 = 15; |
| 33 | +var TYPE_FLOAT32 = 16; |
| 34 | +var TYPE_FLOAT64 = 17; |
| 35 | +var TYPE_CHAR = 18; |
| 36 | +var TYPE_STRING = 19; |
| 37 | +var TYPE_SYMBOL = 20; |
38 | 38 |
|
39 | 39 | // Abstract types |
40 | | -const TYPE_NUMBER = 21; |
41 | | -const TYPE_REAL = 22; |
42 | | -const TYPE_INTEGER = 23; |
43 | | -const TYPE_SIGNED = 24; |
44 | | -const TYPE_UNSIGNED = 25; |
45 | | -const TYPE_ABSTRACT_FLOAT = 26; |
46 | | -const TYPE_ABSTRACT_STRING = 27; |
47 | | -const TYPE_ABSTRACT_CHAR = 28; |
| 40 | +var TYPE_NUMBER = 21; |
| 41 | +var TYPE_REAL = 22; |
| 42 | +var TYPE_INTEGER = 23; |
| 43 | +var TYPE_SIGNED = 24; |
| 44 | +var TYPE_UNSIGNED = 25; |
| 45 | +var TYPE_ABSTRACT_FLOAT = 26; |
| 46 | +var TYPE_ABSTRACT_STRING = 27; |
| 47 | +var TYPE_ABSTRACT_CHAR = 28; |
48 | 48 |
|
49 | 49 | // Type kinds (match Julia TYPE_KIND_*) |
50 | | -const KIND_SPECIAL = 0; |
51 | | -const KIND_PRIMITIVE = 1; |
52 | | -const KIND_ABSTRACT = 2; |
53 | | -const KIND_CONTAINER = 3; |
54 | | -const KIND_STRUCT = 4; |
| 50 | +var KIND_SPECIAL = 0; |
| 51 | +var KIND_PRIMITIVE = 1; |
| 52 | +var KIND_ABSTRACT = 2; |
| 53 | +var KIND_CONTAINER = 3; |
| 54 | +var KIND_STRUCT = 4; |
55 | 55 |
|
56 | 56 | // ============================================================ |
57 | 57 | // Statement Kinds — IR representation for lowered Julia code |
58 | 58 | // ============================================================ |
59 | 59 |
|
60 | | -const STMT_CALL = 1; // Function call: { callee: string, args: [ref...] } |
61 | | -const STMT_PHI = 2; // Phi node: { edges: [{ from: int, val: ref }...] } |
62 | | -const STMT_GETFIELD = 3; // Field access: { obj: ref, field: string } |
63 | | -const STMT_NEW = 4; // Construction: { typeId: int } |
64 | | -const STMT_LITERAL = 5; // Literal value: { typeId: int } |
65 | | -const STMT_RETURN = 6; // Return: { val: ref } |
66 | | -const STMT_GOTO = 7; // Goto: { dest: int } |
67 | | -const STMT_GOTOIFNOT = 8; // Cond branch: { cond: ref, dest: int } |
68 | | -const STMT_PINODE = 9; // Type narrowing: { val: ref, typeId: int } |
| 60 | +var STMT_CALL = 1; // Function call: { callee: string, args: [ref...] } |
| 61 | +var STMT_PHI = 2; // Phi node: { edges: [{ from: int, val: ref }...] } |
| 62 | +var STMT_GETFIELD = 3; // Field access: { obj: ref, field: string } |
| 63 | +var STMT_NEW = 4; // Construction: { typeId: int } |
| 64 | +var STMT_LITERAL = 5; // Literal value: { typeId: int } |
| 65 | +var STMT_RETURN = 6; // Return: { val: ref } |
| 66 | +var STMT_GOTO = 7; // Goto: { dest: int } |
| 67 | +var STMT_GOTOIFNOT = 8; // Cond branch: { cond: ref, dest: int } |
| 68 | +var STMT_PINODE = 9; // Type narrowing: { val: ref, typeId: int } |
69 | 69 |
|
70 | 70 | // Inference constants |
71 | | -const UNKNOWN = -1; |
72 | | -const MAX_ITERS = 4; // Loop fixed-point iterations |
73 | | -const MAX_UNION = 4; // Max components in a union type |
| 71 | +var UNKNOWN = -1; |
| 72 | +var MAX_ITERS = 4; // Loop fixed-point iterations |
| 73 | +var MAX_UNION = 4; // Max components in a union type |
74 | 74 |
|
75 | 75 | // FNV-1a constants (must match Julia side exactly) |
76 | | -const FNV_OFFSET = 0x811c9dc5; |
77 | | -const FNV_PRIME = 0x01000193; |
78 | | -const ENTRY_INTS = 8; // Int32s per hash table slot |
| 76 | +var FNV_OFFSET = 0x811c9dc5; |
| 77 | +var FNV_PRIME = 0x01000193; |
| 78 | +var ENTRY_INTS = 8; // Int32s per hash table slot |
79 | 79 |
|
80 | 80 | // ============================================================ |
81 | 81 | // Table Loading — parse types.bin binary format |
|
0 commit comments