1 /*
2 ** VM error messages.
3 ** Copyright (C) 2005-2014 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(STRFMTO,	"invalid option " LUA_QL("%%%c") " to " LUA_QL("format"))
100 ERRDEF(STRFMTR,	"invalid format (repeated flags)")
101 ERRDEF(STRFMTW,	"invalid format (width or precision too long)")
102 ERRDEF(STRGSRV,	"invalid replacement value (a %s)")
103 ERRDEF(BADMODN,	"name conflict for module " LUA_QS)
104 #if LJ_HASJIT
105 ERRDEF(JITPROT,	"runtime code generation failed, restricted kernel?")
106 #if LJ_TARGET_X86ORX64
107 ERRDEF(NOJIT,	"JIT compiler disabled, CPU does not support SSE2")
108 #else
109 ERRDEF(NOJIT,	"JIT compiler disabled")
110 #endif
111 #elif defined(LJ_ARCH_NOJIT)
112 ERRDEF(NOJIT,	"no JIT compiler for this architecture (yet)")
113 #else
114 ERRDEF(NOJIT,	"JIT compiler permanently disabled by build option")
115 #endif
116 ERRDEF(JITOPT,	"unknown or malformed optimization flag " LUA_QS)
117 
118 /* Lexer/parser errors. */
119 ERRDEF(XMODE,	"attempt to load chunk with wrong mode")
120 ERRDEF(XNEAR,	"%s near " LUA_QS)
121 ERRDEF(XELEM,	"lexical element too long")
122 ERRDEF(XLINES,	"chunk has too many lines")
123 ERRDEF(XLEVELS,	"chunk has too many syntax levels")
124 ERRDEF(XNUMBER,	"malformed number")
125 ERRDEF(XLSTR,	"unfinished long string")
126 ERRDEF(XLCOM,	"unfinished long comment")
127 ERRDEF(XSTR,	"unfinished string")
128 ERRDEF(XESC,	"invalid escape sequence")
129 ERRDEF(XLDELIM,	"invalid long string delimiter")
130 ERRDEF(XTOKEN,	LUA_QS " expected")
131 ERRDEF(XJUMP,	"control structure too long")
132 ERRDEF(XSLOTS,	"function or expression too complex")
133 ERRDEF(XLIMC,	"chunk has more than %d local variables")
134 ERRDEF(XLIMM,	"main function has more than %d %s")
135 ERRDEF(XLIMF,	"function at line %d has more than %d %s")
136 ERRDEF(XMATCH,	LUA_QS " expected (to close " LUA_QS " at line %d)")
137 ERRDEF(XFIXUP,	"function too long for return fixup")
138 ERRDEF(XPARAM,	"<name> or " LUA_QL("...") " expected")
139 #if !LJ_52
140 ERRDEF(XAMBIG,	"ambiguous syntax (function call x new statement)")
141 #endif
142 ERRDEF(XFUNARG,	"function arguments expected")
143 ERRDEF(XSYMBOL,	"unexpected symbol")
144 ERRDEF(XDOTS,	"cannot use " LUA_QL("...") " outside a vararg function")
145 ERRDEF(XSYNTAX,	"syntax error")
146 ERRDEF(XFOR,	LUA_QL("=") " or " LUA_QL("in") " expected")
147 ERRDEF(XBREAK,	"no loop to break")
148 ERRDEF(XLUNDEF,	"undefined label " LUA_QS)
149 ERRDEF(XLDUP,	"duplicate label " LUA_QS)
150 ERRDEF(XGSCOPE,	"<goto %s> jumps into the scope of local " LUA_QS)
151 
152 /* Bytecode reader errors. */
153 ERRDEF(BCFMT,	"cannot load incompatible bytecode")
154 ERRDEF(BCBAD,	"cannot load malformed bytecode")
155 
156 #if LJ_HASFFI
157 /* FFI errors. */
158 ERRDEF(FFI_INVTYPE,	"invalid C type")
159 ERRDEF(FFI_INVSIZE,	"size of C type is unknown or too large")
160 ERRDEF(FFI_BADSCL,	"bad storage class")
161 ERRDEF(FFI_DECLSPEC,	"declaration specifier expected")
162 ERRDEF(FFI_BADTAG,	"undeclared or implicit tag " LUA_QS)
163 ERRDEF(FFI_REDEF,	"attempt to redefine " LUA_QS)
164 ERRDEF(FFI_NUMPARAM,	"wrong number of type parameters")
165 ERRDEF(FFI_INITOV,	"too many initializers for " LUA_QS)
166 ERRDEF(FFI_BADCONV,	"cannot convert " LUA_QS " to " LUA_QS)
167 ERRDEF(FFI_BADLEN,	"attempt to get length of " LUA_QS)
168 ERRDEF(FFI_BADCONCAT,	"attempt to concatenate " LUA_QS " and " LUA_QS)
169 ERRDEF(FFI_BADARITH,	"attempt to perform arithmetic on " LUA_QS " and " LUA_QS)
170 ERRDEF(FFI_BADCOMP,	"attempt to compare " LUA_QS " with " LUA_QS)
171 ERRDEF(FFI_BADCALL,	LUA_QS " is not callable")
172 ERRDEF(FFI_NUMARG,	"wrong number of arguments for function call")
173 ERRDEF(FFI_BADMEMBER,	LUA_QS " has no member named " LUA_QS)
174 ERRDEF(FFI_BADIDX,	LUA_QS " cannot be indexed")
175 ERRDEF(FFI_BADIDXW,	LUA_QS " cannot be indexed with " LUA_QS)
176 ERRDEF(FFI_BADMM,	LUA_QS " has no " LUA_QS " metamethod")
177 ERRDEF(FFI_WRCONST,	"attempt to write to constant location")
178 ERRDEF(FFI_NODECL,	"missing declaration for symbol " LUA_QS)
179 ERRDEF(FFI_BADCBACK,	"bad callback")
180 #if LJ_OS_NOJIT
181 ERRDEF(FFI_CBACKOV,	"no support for callbacks on this OS")
182 #else
183 ERRDEF(FFI_CBACKOV,	"too many callbacks")
184 #endif
185 ERRDEF(FFI_NYIPACKBIT,	"NYI: packed bit fields")
186 ERRDEF(FFI_NYICALL,	"NYI: cannot call this C function (yet)")
187 #endif
188 
189 #undef ERRDEF
190 
191 /* Detecting unused error messages:
192    awk -F, '/^ERRDEF/ { gsub(/ERRDEF./, ""); printf "grep -q LJ_ERR_%s *.[ch] || echo %s\n", $1, $1}' lj_errmsg.h | sh
193 */
194