Commit Graph

  • 7fe1a4cff3 cleaner and more correct code for 'luaD_shrinkstack' (the old test "inuse <= LUAI_MAXSTACK" for stack overflow is not correct, as the real maximum usable size is "LUAI_MAXSTACK - EXTRA_STACK") Roberto Ierusalimschy 2016-09-08 13:36:26 -03:00
  • dbb6f11e8e bug (with compat on): 'ipairs' can work with any type that provides an __index; so, 'pairsmeta' should not check for tables. ('pairs' already checks for tables through 'next'.) Roberto Ierusalimschy 2016-09-05 16:06:34 -03:00
  • aeb4c6fff1 comments + removed unused variable Roberto Ierusalimschy 2016-09-05 15:53:02 -03:00
  • 3b91b07fd9 detail (macro 'l_checkmode' reimplemented as function) Roberto Ierusalimschy 2016-09-01 13:14:56 -03:00
  • 349badabc1 wrong test in '#if' for floating-point type Roberto Ierusalimschy 2016-08-22 14:21:12 -03:00
  • e4a9e6fcca do not eliminate varargs from functions that do not use varargs (confuses the debug lib and gains very little in performance) Roberto Ierusalimschy 2016-08-01 16:51:24 -03:00
  • 9de2bb0d62 bug: When a coroutine tries to resume a non-suspended coroutine, it coud do some mess (and break C assertions) before detecting the error. Now it tests for those errors before anything else. Roberto Ierusalimschy 2016-07-29 14:12:44 -03:00
  • d55fd3455b redefine MAXINDEXRK (for debugging, to force most values to go through registers) Roberto Ierusalimschy 2016-07-19 14:13:00 -03:00
  • 0d1c6f4188 MAXINDEXRK can be redefined (for debugging, to force most values to go through registers) Roberto Ierusalimschy 2016-07-19 14:12:21 -03:00
  • fc6b32bcaa bug: Lua can generate wrong code in functions with too many constants Roberto Ierusalimschy 2016-07-19 14:12:07 -03:00
  • de96e26afc bug: 'checkoption' could read past end of string + 'os.date' can handle embedded zeros Roberto Ierusalimschy 2016-07-18 14:58:58 -03:00
  • de3fd8ab83 Handling of LUA_PATH/LUA_CPATH moved from package library to stand alone interpreter (so that 'lua.c' concentrates all handling of environment variables) Roberto Ierusalimschy 2016-07-18 14:55:59 -03:00
  • 788109a3de new bug: Checking a format for 'os.date' may read pass the format string Roberto Ierusalimschy 2016-07-15 14:24:09 -03:00
  • 09c9fa36ea small corrections for C++ compliance Roberto Ierusalimschy 2016-06-27 10:15:08 -03:00
  • dcb2998aa6 bug: expression list with four or more expressions in a 'for' loop can crash the interpreter. ('adjust_assign' must remove extra expresssions from its registers.) Roberto Ierusalimschy 2016-06-22 12:48:25 -03:00
  • fac00ca023 bug: expression list with four or more expressions in a 'for' loop can crash the interpreter. Roberto Ierusalimschy 2016-06-21 14:22:34 -03:00
  • 6487fb11fc all 'static' variables should be 'const' Roberto Ierusalimschy 2016-06-20 16:12:46 -03:00
  • 644799537f allow more bits in 'callstatus' (use no extra space due to alignments) Roberto Ierusalimschy 2016-06-16 10:36:09 -03:00
  • aa66ca76ce 'lua_pushglobaltable' returns 'void' Roberto Ierusalimschy 2016-05-30 12:53:28 -03:00
  • 707b0ba6e2 'string.format("%q")' writes 'math.mininteger' in hexa, to ensure it is read back as an integer Roberto Ierusalimschy 2016-05-20 11:13:21 -03:00
  • 10b0b09555 do not convert decimal constants with overflow to integers. (Therefore, they will be converted as floats) Roberto Ierusalimschy 2016-05-20 11:07:48 -03:00
  • 4d5ab9baa6 'string.pack("cn")' does not accept strings longer than 'n' Roberto Ierusalimschy 2016-05-18 15:19:51 -03:00
  • b65252b39b 'singlevaraux' returns result only in 'var->k' Roberto Ierusalimschy 2016-05-13 16:10:16 -03:00
  • fbd8614bdb comment (FALLTHROUGH) Roberto Ierusalimschy 2016-05-13 16:09:46 -03:00
  • f3b52a6061 'io.read("n")' accepts both a dot and the locale point as its radix character + 'MAXRN' -> 'L_MAXLENNUM' + small detail in 'test2' Roberto Ierusalimschy 2016-05-02 11:03:19 -03:00
  • 0232fbffbe now that 'luaO_str2num' always accepts a dot as a radix character, the lexer does not need to bother with this issue. Roberto Ierusalimschy 2016-05-02 11:02:12 -03:00
  • ed110f66c5 'luaO_str2num' (and, therefore, 'lua_stringtonumber', 'number', and coercions) accepts both the locale point and a dot as its radix character Roberto Ierusalimschy 2016-05-02 11:00:32 -03:00
  • 22093f9c6e 'string.format("%q", number)' ensures a dot as decimal point Roberto Ierusalimschy 2016-05-02 10:58:01 -03:00
  • 792ffaccf2 detail (macro should "use" all its arguments) Roberto Ierusalimschy 2016-05-01 17:06:09 -03:00
  • 57cdb60429 no more time limits to pattern matching (at least for now) Roberto Ierusalimschy 2016-04-22 13:36:30 -03:00
  • 89c09c8e40 match time limit defined by variable 'string.pattlimit' Roberto Ierusalimschy 2016-04-19 09:34:08 -03:00
  • 48baa5e89c 'os.time(t)' normalizes 't' fields Roberto Ierusalimschy 2016-04-18 10:06:55 -03:00
  • fdd7209688 error handling in 'wrap' does not coerce numbers into string messages Roberto Ierusalimschy 2016-04-11 16:19:55 -03:00
  • 82a8e06524 details ('error' does not coerce numbers to strings + comments) Roberto Ierusalimschy 2016-04-11 16:18:40 -03:00
  • c258870c59 diff for last bug was against wrong version Roberto Ierusalimschy 2016-04-11 12:34:21 -03:00
  • e8e39a277f 'string.format"%q"' now works for all basic types (nil, boolean, numbers, and strings) Roberto Ierusalimschy 2016-04-08 18:15:02 -03:00
  • fff7d42a69 LUA_PACKPADBYTE -> LUAL_PACKPADBYTE (it is an internal library name, not something to be usually configured) Roberto Ierusalimschy 2016-04-07 12:40:07 -03:00
  • 783aa8a9da new way to avoid infinite loops in empty matches: "Python rule" ("Empty matches for the pattern are replaced only when not adjacent to a previous match") Roberto Ierusalimschy 2016-03-31 16:07:42 -03:00
  • 8d4feb504f do not try to ensure that 'sweepgc' points to a live object when entering sweep phase ('entersweep'); that may be too expensive to be done still inside the atomic step. Walking one single object more often than not will work. Roberto Ierusalimschy 2016-03-31 16:02:03 -03:00
  • d77a7a8c26 detail (comment) Roberto Ierusalimschy 2016-03-31 16:01:21 -03:00
  • e747491b96 comments Roberto Ierusalimschy 2016-03-23 15:08:26 -03:00
  • acff3ad88d bug: 'gmatch' iterator fails when called from a coroutine different from the one that created it Roberto Ierusalimschy 2016-03-23 14:12:17 -03:00
  • e7b2e01d43 bug: label between local definitions can mix-up their initializations Roberto Ierusalimschy 2016-03-07 16:25:39 -03:00
  • 03ca6385dc call 'checkGC' *after* creating new objects (this is how 'execute' does it) (It increases the changes that 'allgc' start with a non-white object, which helps 'entersweep') Roberto Ierusalimschy 2016-02-29 11:27:14 -03:00
  • 7777b412de When available, use metafield '__name' in error messages Roberto Ierusalimschy 2016-02-26 16:20:15 -03:00
  • c3e9b14d24 '\0' is a control character, no need to check it explicitly Roberto Ierusalimschy 2016-02-25 16:42:55 -03:00
  • 7d6b78ee79 in 'table.move', destination table can be source table even if given as an explicit extra argument Roberto Ierusalimschy 2016-02-25 16:41:54 -03:00
  • 5f3ad5731e simpler yet definition for 'checkoption' Roberto Ierusalimschy 2016-02-09 10:16:11 -02:00
  • 494e9ba0f4 simpler code for 'checkoption' + added conversion specifiers specific to Windows Roberto Ierusalimschy 2016-02-08 12:42:46 -02:00
  • f79b4568ae details (removed silly use of 'luaL_opt' + better error messages in cases of "table expected") Roberto Ierusalimschy 2016-02-08 10:55:19 -02:00
  • fd51651684 new macro 'vmfetch' to help changing code to computed goto's (macro abstracts the code to run before each instruction) Roberto Ierusalimschy 2016-02-05 17:59:14 -02:00
  • 994374c4df new release number + new year Roberto Ierusalimschy 2016-01-13 15:55:19 -02:00
  • 62f6652d53 no more extra space in 'luaL_checkstack'. (It was already useless for the first call, and function works ok without that space anyway (just error message misses the 'msg' component) Roberto Ierusalimschy 2016-01-08 13:33:09 -02:00
  • 9945253d57 details (comments + text of error messages) Roberto Ierusalimschy 2016-01-06 11:43:05 -02:00
  • 1f259be52a 'getcode' -> 'getinstruction' Roberto Ierusalimschy 2016-01-05 14:22:37 -02:00
  • 1a44e82200 'luaV_fastget' only treats the real fast case (table with a non-nil value at given key, so that it does not need to check metamethods) Roberto Ierusalimschy 2016-01-05 14:07:21 -02:00
  • a272fa66f0 bug: Metatable may access its own dealocated field when it has a self reference in __newindex + some refactoring Roberto Ierusalimschy 2016-01-04 14:44:50 -02:00
  • b12b635a90 more refactoring Roberto Ierusalimschy 2016-01-04 11:40:57 -02:00
  • 7cd7c2e0a1 Metatable may access its own dealocated field when it has a self reference in __newindex. Roberto Ierusalimschy 2016-01-04 11:35:56 -02:00
  • 07cf8415e3 more comments + reordeing of union inside 'expdesc' to allow static initialization of a VKINT value Roberto Ierusalimschy 2015-12-30 16:16:13 -02:00
  • c0836dda74 avoid empty macro arguments (invalid in C89) Roberto Ierusalimschy 2015-12-21 11:02:14 -02:00
  • 384d1b47b0 comments (*lots* of them) + asserts Roberto Ierusalimschy 2015-12-18 11:53:36 -02:00
  • 19770b03a9 comments. (More explanation about kinds of expressions.) Roberto Ierusalimschy 2015-12-17 13:44:50 -02:00
  • a01eba657e reordering of some functions + 'code_label' renamed to 'code_loadbool' Roberto Ierusalimschy 2015-12-17 13:02:44 -02:00
  • b7446ea88d detail ('while' -> 'for') in 'luaK_patchclose' Roberto Ierusalimschy 2015-12-17 12:52:53 -02:00
  • a051b3323e comments (about hooks vs signals) Roberto Ierusalimschy 2015-12-16 14:40:07 -02:00
  • c4e01c568a make 'hook' volatile (as it may be changed in signal handling) Roberto Ierusalimschy 2015-12-16 14:39:38 -02:00
  • bda090b961 comments + small code changes around stack usage when 'luaL_checkstack' raises an error (and needs the stack to create the error message...) Roberto Ierusalimschy 2015-12-14 09:59:27 -02:00
  • e383941652 in 'table.sort': 'typedef' for type of indices + removed stack check (recursion is in the C stack, not in the Lua stack!) Roberto Ierusalimschy 2015-12-14 09:57:38 -02:00
  • 656b3cea1b using 'sig_atomic_t' for 'hookmask' (as it can be changed inside a signal) Roberto Ierusalimschy 2015-12-14 09:54:49 -02:00
  • 2d1d57bc18 comments Roberto Ierusalimschy 2015-12-14 09:53:27 -02:00
  • 03412af06e detail (removed fixed argument to function 'callallpendingfinalizers') Roberto Ierusalimschy 2015-12-10 16:12:30 -02:00
  • 542dbd4c65 detail (moving bodies of 'while' to a separate line) Roberto Ierusalimschy 2015-12-09 13:21:28 -02:00
  • c25d59a6bd format "%s" in 'string.format' accepts embedded zeros when it has no modifiers Roberto Ierusalimschy 2015-11-25 14:28:17 -02:00
  • 5936eb16d8 randomness in 'table.sort' used only when needed (big imbalance in partition result) + small refactoring Roberto Ierusalimschy 2015-11-25 10:48:57 -02:00
  • 7dc3ca7b8e handling 'clock_t' and 'time_t' correctly in ISO C point of view Roberto Ierusalimschy 2015-11-24 14:54:32 -02:00
  • 71344b5cac easy the way to accept other modifiers for 'mode' in 'io.open' Roberto Ierusalimschy 2015-11-23 09:36:11 -02:00
  • f230898ad6 tiny code refactoring in 'luaS_hash' Roberto Ierusalimschy 2015-11-23 09:32:51 -02:00
  • 3feb702df8 ensure argument to 'string.format("%s")' does not contain zeros Roberto Ierusalimschy 2015-11-23 09:31:21 -02:00
  • c5112f7b15 details (comments) Roberto Ierusalimschy 2015-11-23 09:30:45 -02:00
  • c231a5e2b6 using unsigned int (instead of int) in 'table.sort' to avoid overflows (when computing the pivot and in original table size) Roberto Ierusalimschy 2015-11-23 09:17:31 -02:00
  • dc9ac5b8c2 details (merging declarations with initialization) Roberto Ierusalimschy 2015-11-23 09:09:27 -02:00
  • 146508b28e randomness in pivot for 'table.sort' done by a macro (easier to change) Roberto Ierusalimschy 2015-11-20 10:30:20 -02:00
  • d103312661 details (typos in comments) Roberto Ierusalimschy 2015-11-19 17:16:22 -02:00
  • 2e8f8a18e4 detail Roberto Ierusalimschy 2015-11-17 14:00:28 -02:00
  • f5b0459aba details Roberto Ierusalimschy 2015-11-13 15:19:46 -02:00
  • d682b3c9ec added separator for bugs in 5.3.1 Roberto Ierusalimschy 2015-11-13 15:19:07 -02:00
  • fc085aa627 new release number (5.3.2) Roberto Ierusalimschy 2015-11-13 15:18:42 -02:00
  • 9a5d6aedb7 trying to optimize a little 'luaD_poscall' Roberto Ierusalimschy 2015-11-13 11:24:26 -02:00
  • 89e3a84344 removed field 'n' from 'CallInfo' (not being used right now) Roberto Ierusalimschy 2015-11-13 10:16:51 -02:00
  • 04587b6256 macro with empty argument can be seen as macro with no argument; better to avoid that Roberto Ierusalimschy 2015-11-12 16:08:58 -02:00
  • bde03eeb48 in 'table.sort': tighter checks for invalid order function + "random" pivot for larger intervals (to avoid attacks with bad data) Roberto Ierusalimschy 2015-11-12 16:07:25 -02:00
  • 330d426ffd avoid the use of deprecated functions 'luaL_checkunsigned'/ 'lua_pushunsigned' Roberto Ierusalimschy 2015-11-11 17:08:09 -02:00
  • 02340375be janitor work on 'table.sort': added comments, partition code moved to a separated function, code conventions updated, etc. No changes at all in the logic/algorithm Roberto Ierusalimschy 2015-11-06 14:07:14 -02:00
  • 5100bc8aa1 no need for a special case to get long strings (not that common) Roberto Ierusalimschy 2015-11-03 16:35:21 -02:00
  • ebb2afa54b allow 'set' macros to be used when 'L' is not available (as it was needed only for assertions) Roberto Ierusalimschy 2015-11-03 16:33:10 -02:00
  • 7485512384 added comment and assert about dead keys Roberto Ierusalimschy 2015-11-03 16:10:44 -02:00
  • 46de77b219 bug: despite its name, 'luaH_getstr' did not work for strings in general, but only for short strings Roberto Ierusalimschy 2015-11-03 13:47:30 -02:00
  • d356183402 new function 'luaS_hashlongstr' Roberto Ierusalimschy 2015-11-03 13:36:01 -02:00
  • e61ee8a036 in 'luaD_call', use two functions instead of one with fixed boolean argument + stack error handling in 'luaD_call' moved to a separated function Roberto Ierusalimschy 2015-11-02 16:48:49 -02:00