1 | /* |
2 | ** VM error messages. |
3 | ** Copyright (C) 2005-2021 Mike Pall. See Copyright Notice in luajit.h |
4 | */ |
5 | |
6 | /* This file may be included multiple times with different ERRDEF macros. */ |
7 | |
8 | /* Basic error handling. */ |
9 | ERRDEF(ERRMEM, "not enough memory" ) |
10 | ERRDEF(ERRERR, "error in error handling" ) |
11 | ERRDEF(ERRCPP, "C++ exception" ) |
12 | |
13 | /* Allocations. */ |
14 | ERRDEF(STROV, "string length overflow" ) |
15 | ERRDEF(UDATAOV, "userdata length overflow" ) |
16 | ERRDEF(STKOV, "stack overflow" ) |
17 | ERRDEF(STKOVM, "stack overflow (%s)" ) |
18 | ERRDEF(TABOV, "table overflow" ) |
19 | |
20 | /* Table indexing. */ |
21 | ERRDEF(NANIDX, "table index is NaN" ) |
22 | ERRDEF(NILIDX, "table index is nil" ) |
23 | ERRDEF(NEXTIDX, "invalid key to " LUA_QL("next" )) |
24 | |
25 | /* Metamethod resolving. */ |
26 | ERRDEF(BADCALL, "attempt to call a %s value" ) |
27 | ERRDEF(BADOPRT, "attempt to %s %s " LUA_QS " (a %s value)" ) |
28 | ERRDEF(BADOPRV, "attempt to %s a %s value" ) |
29 | ERRDEF(BADCMPT, "attempt to compare %s with %s" ) |
30 | ERRDEF(BADCMPV, "attempt to compare two %s values" ) |
31 | ERRDEF(GETLOOP, "loop in gettable" ) |
32 | ERRDEF(SETLOOP, "loop in settable" ) |
33 | ERRDEF(OPCALL, "call" ) |
34 | ERRDEF(OPINDEX, "index" ) |
35 | ERRDEF(OPARITH, "perform arithmetic on" ) |
36 | ERRDEF(OPCAT, "concatenate" ) |
37 | ERRDEF(OPLEN, "get length of" ) |
38 | |
39 | /* Type checks. */ |
40 | ERRDEF(BADSELF, "calling " LUA_QS " on bad self (%s)" ) |
41 | ERRDEF(BADARG, "bad argument #%d to " LUA_QS " (%s)" ) |
42 | ERRDEF(BADTYPE, "%s expected, got %s" ) |
43 | ERRDEF(BADVAL, "invalid value" ) |
44 | ERRDEF(NOVAL, "value expected" ) |
45 | ERRDEF(NOCORO, "coroutine expected" ) |
46 | ERRDEF(NOTABN, "nil or table expected" ) |
47 | ERRDEF(NOLFUNC, "Lua function expected" ) |
48 | ERRDEF(NOFUNCL, "function or level expected" ) |
49 | ERRDEF(NOSFT, "string/function/table expected" ) |
50 | ERRDEF(NOPROXY, "boolean or proxy expected" ) |
51 | ERRDEF(FORINIT, LUA_QL("for" ) " initial value must be a number" ) |
52 | ERRDEF(FORLIM, LUA_QL("for" ) " limit must be a number" ) |
53 | ERRDEF(FORSTEP, LUA_QL("for" ) " step must be a number" ) |
54 | |
55 | /* C API checks. */ |
56 | ERRDEF(NOENV, "no calling environment" ) |
57 | ERRDEF(CYIELD, "attempt to yield across C-call boundary" ) |
58 | ERRDEF(BADLU, "bad light userdata pointer" ) |
59 | ERRDEF(NOGCMM, "bad action while in __gc metamethod" ) |
60 | #if LJ_TARGET_WINDOWS |
61 | ERRDEF(BADFPU, "bad FPU precision (use D3DCREATE_FPU_PRESERVE with DirectX)" ) |
62 | #endif |
63 | |
64 | /* Standard library function errors. */ |
65 | ERRDEF(ASSERT, "assertion failed!" ) |
66 | ERRDEF(PROTMT, "cannot change a protected metatable" ) |
67 | ERRDEF(UNPACK, "too many results to unpack" ) |
68 | ERRDEF(RDRSTR, "reader function must return a string" ) |
69 | ERRDEF(PRTOSTR, LUA_QL("tostring" ) " must return a string to " LUA_QL("print" )) |
70 | ERRDEF(IDXRNG, "index out of range" ) |
71 | ERRDEF(BASERNG, "base out of range" ) |
72 | ERRDEF(LVLRNG, "level out of range" ) |
73 | ERRDEF(INVLVL, "invalid level" ) |
74 | ERRDEF(INVOPT, "invalid option" ) |
75 | ERRDEF(INVOPTM, "invalid option " LUA_QS) |
76 | ERRDEF(INVFMT, "invalid format" ) |
77 | ERRDEF(SETFENV, LUA_QL("setfenv" ) " cannot change environment of given object" ) |
78 | ERRDEF(CORUN, "cannot resume running coroutine" ) |
79 | ERRDEF(CODEAD, "cannot resume dead coroutine" ) |
80 | ERRDEF(COSUSP, "cannot resume non-suspended coroutine" ) |
81 | ERRDEF(TABINS, "wrong number of arguments to " LUA_QL("insert" )) |
82 | ERRDEF(TABCAT, "invalid value (%s) at index %d in table for " LUA_QL("concat" )) |
83 | ERRDEF(TABSORT, "invalid order function for sorting" ) |
84 | ERRDEF(IOCLFL, "attempt to use a closed file" ) |
85 | ERRDEF(IOSTDCL, "standard file is closed" ) |
86 | ERRDEF(OSUNIQF, "unable to generate a unique filename" ) |
87 | ERRDEF(OSDATEF, "field " LUA_QS " missing in date table" ) |
88 | ERRDEF(STRDUMP, "unable to dump given function" ) |
89 | ERRDEF(STRSLC, "string slice too long" ) |
90 | ERRDEF(STRPATB, "missing " LUA_QL("[" ) " after " LUA_QL("%f" ) " in pattern" ) |
91 | ERRDEF(STRPATC, "invalid pattern capture" ) |
92 | ERRDEF(STRPATE, "malformed pattern (ends with " LUA_QL("%" ) ")" ) |
93 | ERRDEF(STRPATM, "malformed pattern (missing " LUA_QL("]" ) ")" ) |
94 | ERRDEF(STRPATU, "unbalanced pattern" ) |
95 | ERRDEF(STRPATX, "pattern too complex" ) |
96 | ERRDEF(STRCAPI, "invalid capture index" ) |
97 | ERRDEF(STRCAPN, "too many captures" ) |
98 | ERRDEF(STRCAPU, "unfinished capture" ) |
99 | ERRDEF(STRFMT, "invalid option " LUA_QS " to " LUA_QL("format" )) |
100 | ERRDEF(STRGSRV, "invalid replacement value (a %s)" ) |
101 | ERRDEF(BADMODN, "name conflict for module " LUA_QS) |
102 | #if LJ_HASJIT |
103 | ERRDEF(JITPROT, "runtime code generation failed, restricted kernel?" ) |
104 | ERRDEF(NOJIT, "JIT compiler disabled" ) |
105 | #elif defined(LJ_ARCH_NOJIT) |
106 | ERRDEF(NOJIT, "no JIT compiler for this architecture (yet)" ) |
107 | #else |
108 | ERRDEF(NOJIT, "JIT compiler permanently disabled by build option" ) |
109 | #endif |
110 | ERRDEF(JITOPT, "unknown or malformed optimization flag " LUA_QS) |
111 | |
112 | /* Lexer/parser errors. */ |
113 | ERRDEF(XMODE, "attempt to load chunk with wrong mode" ) |
114 | ERRDEF(XNEAR, "%s near " LUA_QS) |
115 | ERRDEF(XLINES, "chunk has too many lines" ) |
116 | ERRDEF(XLEVELS, "chunk has too many syntax levels" ) |
117 | ERRDEF(XNUMBER, "malformed number" ) |
118 | ERRDEF(XLSTR, "unfinished long string" ) |
119 | ERRDEF(XLCOM, "unfinished long comment" ) |
120 | ERRDEF(XSTR, "unfinished string" ) |
121 | ERRDEF(XESC, "invalid escape sequence" ) |
122 | ERRDEF(XLDELIM, "invalid long string delimiter" ) |
123 | ERRDEF(XTOKEN, LUA_QS " expected" ) |
124 | ERRDEF(XJUMP, "control structure too long" ) |
125 | ERRDEF(XSLOTS, "function or expression too complex" ) |
126 | ERRDEF(XLIMC, "chunk has more than %d local variables" ) |
127 | ERRDEF(XLIMM, "main function has more than %d %s" ) |
128 | ERRDEF(XLIMF, "function at line %d has more than %d %s" ) |
129 | ERRDEF(XMATCH, LUA_QS " expected (to close " LUA_QS " at line %d)" ) |
130 | ERRDEF(XFIXUP, "function too long for return fixup" ) |
131 | ERRDEF(XPARAM, "<name> or " LUA_QL("..." ) " expected" ) |
132 | #if !LJ_52 |
133 | ERRDEF(XAMBIG, "ambiguous syntax (function call x new statement)" ) |
134 | #endif |
135 | ERRDEF(XFUNARG, "function arguments expected" ) |
136 | ERRDEF(XSYMBOL, "unexpected symbol" ) |
137 | ERRDEF(XDOTS, "cannot use " LUA_QL("..." ) " outside a vararg function" ) |
138 | ERRDEF(XSYNTAX, "syntax error" ) |
139 | ERRDEF(XFOR, LUA_QL("=" ) " or " LUA_QL("in" ) " expected" ) |
140 | ERRDEF(XBREAK, "no loop to break" ) |
141 | ERRDEF(XLUNDEF, "undefined label " LUA_QS) |
142 | ERRDEF(XLDUP, "duplicate label " LUA_QS) |
143 | ERRDEF(XGSCOPE, "<goto %s> jumps into the scope of local " LUA_QS) |
144 | |
145 | /* Bytecode reader errors. */ |
146 | ERRDEF(BCFMT, "cannot load incompatible bytecode" ) |
147 | ERRDEF(BCBAD, "cannot load malformed bytecode" ) |
148 | |
149 | #if LJ_HASFFI |
150 | /* FFI errors. */ |
151 | ERRDEF(FFI_INVTYPE, "invalid C type" ) |
152 | ERRDEF(FFI_INVSIZE, "size of C type is unknown or too large" ) |
153 | ERRDEF(FFI_BADSCL, "bad storage class" ) |
154 | ERRDEF(FFI_DECLSPEC, "declaration specifier expected" ) |
155 | ERRDEF(FFI_BADTAG, "undeclared or implicit tag " LUA_QS) |
156 | ERRDEF(FFI_REDEF, "attempt to redefine " LUA_QS) |
157 | ERRDEF(FFI_NUMPARAM, "wrong number of type parameters" ) |
158 | ERRDEF(FFI_INITOV, "too many initializers for " LUA_QS) |
159 | ERRDEF(FFI_BADCONV, "cannot convert " LUA_QS " to " LUA_QS) |
160 | ERRDEF(FFI_BADLEN, "attempt to get length of " LUA_QS) |
161 | ERRDEF(FFI_BADCONCAT, "attempt to concatenate " LUA_QS " and " LUA_QS) |
162 | ERRDEF(FFI_BADARITH, "attempt to perform arithmetic on " LUA_QS " and " LUA_QS) |
163 | ERRDEF(FFI_BADCOMP, "attempt to compare " LUA_QS " with " LUA_QS) |
164 | ERRDEF(FFI_BADCALL, LUA_QS " is not callable" ) |
165 | ERRDEF(FFI_NUMARG, "wrong number of arguments for function call" ) |
166 | ERRDEF(FFI_BADMEMBER, LUA_QS " has no member named " LUA_QS) |
167 | ERRDEF(FFI_BADIDX, LUA_QS " cannot be indexed" ) |
168 | ERRDEF(FFI_BADIDXW, LUA_QS " cannot be indexed with " LUA_QS) |
169 | ERRDEF(FFI_BADMM, LUA_QS " has no " LUA_QS " metamethod" ) |
170 | ERRDEF(FFI_WRCONST, "attempt to write to constant location" ) |
171 | ERRDEF(FFI_NODECL, "missing declaration for symbol " LUA_QS) |
172 | ERRDEF(FFI_BADCBACK, "bad callback" ) |
173 | #if LJ_OS_NOJIT |
174 | ERRDEF(FFI_CBACKOV, "no support for callbacks on this OS" ) |
175 | #else |
176 | ERRDEF(FFI_CBACKOV, "too many callbacks" ) |
177 | #endif |
178 | ERRDEF(FFI_NYIPACKBIT, "NYI: packed bit fields" ) |
179 | ERRDEF(FFI_NYICALL, "NYI: cannot call this C function (yet)" ) |
180 | #endif |
181 | |
182 | #if LJ_HASBUFFER |
183 | /* String buffer errors. */ |
184 | ERRDEF(BUFFER_BADENC, "cannot serialize " LUA_QS) |
185 | ERRDEF(BUFFER_BADDEC, "cannot deserialize tag 0x%02x" ) |
186 | ERRDEF(BUFFER_DEPTH, "too deep to serialize" ) |
187 | ERRDEF(BUFFER_DUPKEY, "duplicate table key" ) |
188 | ERRDEF(BUFFER_EOB, "unexpected end of buffer" ) |
189 | ERRDEF(BUFFER_LEFTOV, "left-over data in buffer" ) |
190 | #endif |
191 | |
192 | #undef ERRDEF |
193 | |
194 | /* Detecting unused error messages: |
195 | awk -F, '/^ERRDEF/ { gsub(/ERRDEF./, ""); printf "grep -q LJ_ERR_%s *.[ch] || echo %s\n", $1, $1}' lj_errmsg.h | sh |
196 | */ |
197 | |