| 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 | |