Commit Graph

  • e39ee2cc58 'luaH_getn' must return 'lua_Unsigned' (or 'lua_Integer'), to allow the boundary-search algorithm to use 'maxinteger' when it cannot find a good upper bound. Roberto Ierusalimschy 2017-05-19 09:48:15 -0300
  • 84910e04e2 better implementation for 'hash_search', without using 'size_t' (simpler to implement and to explain) Roberto Ierusalimschy 2017-05-19 09:47:00 -0300
  • de74289049 table field names for dedicated opcodes can be restricted to small strings for slightly faster access Roberto Ierusalimschy 2017-05-18 16:44:19 -0300
  • 92b3deaffa details in OP_CALL + comments Roberto Ierusalimschy 2017-05-18 16:34:39 -0300
  • 49f7aab62a 'lua_rawlen' returns 'lua_Unsigned' instead of 'size_t'. (Real length of strings and userdata are limited by Lua integers, but table length is hard to compute limiting it to 'size_t'.) Roberto Ierusalimschy 2017-05-18 09:34:58 -0300
  • 3d879fbc5d reimplementation of 'luaH_getn', trying to handle numeric limits properly. Roberto Ierusalimschy 2017-05-16 16:07:08 -0300
  • 6d95de83c6 no more field 'base' in CallInfo (base is always equal to 'func + 1', with old/new vararg implementation) Roberto Ierusalimschy 2017-05-13 10:54:47 -0300
  • 5c8770f896 back to old-style vararg system (with vararg table collecting extra arguments) Roberto Ierusalimschy 2017-05-13 10:04:33 -0300
  • 7647d5d13d revamp of fast track for table access (table set uses the same macros as table get + new macro for integer keys) Roberto Ierusalimschy 2017-05-11 15:57:46 -0300
  • 7184f6343a more integer fast tracks (for OP_LT, OP_LE, OP_SETTABLE, and OP_GETTABLE) Roberto Ierusalimschy 2017-05-10 14:32:19 -0300
  • b1b7790f7c detail ('1' -> '1u' in unsigned operation) Roberto Ierusalimschy 2017-05-09 11:39:46 -0300
  • ab5a650029 details (direct access to 'Ck' bit in instructions) Roberto Ierusalimschy 2017-05-08 13:08:01 -0300
  • fb9de1b4d7 detail ('luaT_callbinTM' does not need to be extern) Roberto Ierusalimschy 2017-05-08 12:57:23 -0300
  • e8757a73e6 'luaV_execute' keeps local copy of program counter and hook mask, to avoid excessive access to globals. Roberto Ierusalimschy 2017-05-05 14:16:11 -0300
  • 4ce8d2047c bug: Wrong code for a goto followed by a label inside an 'if' Roberto Ierusalimschy 2017-05-05 12:55:36 -0300
  • 2376eb6347 barrier for prototype's cache (with new gray list 'protogray' to keep prototypes to have their caches visited again) + constant 'MAXMISS' Roberto Ierusalimschy 2017-05-04 10:32:01 -0300
  • 8634b2a011 added 'cachemiss' field to prototype to avoid wasting time checking hits that fail too often Roberto Ierusalimschy 2017-04-30 17:43:26 -0300
  • 5ecb31003f bug: cannot "skip" labels after if-goto before the jump over the 'then' part Roberto Ierusalimschy 2017-04-29 15:09:17 -0300
  • a454e884e0 details in 'findsetreg' Roberto Ierusalimschy 2017-04-29 12:28:38 -0300
  • 502a1d1108 new opcodes for table access with constant keys (strings and integers) Roberto Ierusalimschy 2017-04-28 17:57:45 -0300
  • 173e41b2eb new opcode OP_ADDI (for immediate integer operand) (Experimental) Roberto Ierusalimschy 2017-04-26 14:46:52 -0300
  • a3f9c1a77a detail (using unsigned comparison in range check for LOADI) Roberto Ierusalimschy 2017-04-25 17:01:14 -0300
  • 6dbae1b5d9 registers in a VINDEXED expression must be freed in order Roberto Ierusalimschy 2017-04-25 15:28:25 -0300
  • cb3d5dce30 opcodes 'OP_GETTABUP'/'OP_SETTABUP' operate only with string keys, so they can use fast-track table access Roberto Ierusalimschy 2017-04-24 17:26:39 -0300
  • 2caecf1b3e type 'L_Umaxalign' replaced by macro 'LUAI_MAXALIGN', which is also added to the auxlib buffer Roberto Ierusalimschy 2017-04-24 15:06:12 -0300
  • f399e6705f ensures that "collectgarbage'step'" in generational mode does a minor collection Roberto Ierusalimschy 2017-04-24 14:52:18 -0300
  • 69371c4b84 'KGC_NORMAL' -> 'KGC_INC' + emergency GC signalled by flag (instead of mode) Roberto Ierusalimschy 2017-04-24 13:59:26 -0300
  • 6a98aa0bb0 new opcode LOADI (for loading immediate integers) Roberto Ierusalimschy 2017-04-20 16:53:55 -0300
  • c354211744 small bug in generational control Roberto Ierusalimschy 2017-04-20 15:24:33 -0300
  • f748b4bb40 macros to define default parameters for generational collection Roberto Ierusalimschy 2017-04-20 15:22:44 -0300
  • 7ae180f8e8 corrected some checks about colors of old objects + new test function 'gcage' Roberto Ierusalimschy 2017-04-19 15:46:47 -0300
  • c7bdc0e0e8 first version of control for the generational collector Roberto Ierusalimschy 2017-04-19 14:02:50 -0300
  • a45945b6d5 new macro 'lua_pointer2str' to encapsulate use of 'l_sprintf' inside the kernel Roberto Ierusalimschy 2017-04-19 13:34:35 -0300
  • 9e1f1b1f62 detail in usage message for '-l' option Roberto Ierusalimschy 2017-04-19 09:49:17 -0300
  • 4679294796 memory check adapted to generational mode Roberto Ierusalimschy 2017-04-18 16:42:12 -0300
  • f74b87c3c2 removed initialization of 'GCestimate' (it is initialized during a GC cycle, when it start counting) Roberto Ierusalimschy 2017-04-12 15:56:25 -0300
  • 16001acb15 small corrections + removal of debugging functions 'count' and 'printgray'. Roberto Ierusalimschy 2017-04-12 15:01:40 -0300
  • 0c8a7e071b 'mainthread' lives in 'allgc' list, like everybody else Roberto Ierusalimschy 2017-04-11 16:00:27 -0300
  • a3d36fe283 Upvalues collected like everything else (with mark-sweep) instead of reference count (simpler and better for generational mode) Roberto Ierusalimschy 2017-04-11 15:41:09 -0300
  • 9569ad6b0d Comments for generational collector Roberto Ierusalimschy 2017-04-10 10:33:04 -0300
  • 2331e1beec small changes in 'luaC_upvalbarrier' Roberto Ierusalimschy 2017-04-06 10:08:56 -0300
  • e4287da3a6 generational collector (still not complete) Roberto Ierusalimschy 2017-04-05 13:50:51 -0300
  • 1a1b2f3d7f added 'return' to calls to 'luaL_error' (to signal to the compiler that the function cannot continue past that call) Roberto Ierusalimschy 2017-03-14 09:40:44 -0300
  • f5f3df3bd1 generational collection: new attempt (still incomplete) Roberto Ierusalimschy 2017-02-23 18:07:34 -0300
  • e6c1e6005a comments about gray lists Roberto Ierusalimschy 2017-02-15 16:52:13 -0200
  • d266d40dea error when calling close method without arguments (e.g., |io.stdin.close()|) Roberto Ierusalimschy 2017-02-09 12:50:05 -0200
  • e354c6355e small updates v5.3.4 Roberto Ierusalimschy 2017-01-31 19:17:47 -0200
  • 94c1b3a8ee Handling of LUA_PATH/LUA_CPATH moved back to 'package' library to avoid incompatibilites with previous releases Roberto Ierusalimschy 2017-01-12 15:14:26 -0200
  • 08199ade4a release 5.3.4 (year 2017) Roberto Ierusalimschy 2016-12-22 13:51:20 -0200
  • 2a235312f0 detail (removing spaces at end of lines) Roberto Ierusalimschy 2016-12-22 11:08:50 -0200
  • 9903dd52a3 Using LUAI_UAC* types more consistently on vararg calls Roberto Ierusalimschy 2016-12-20 16:37:00 -0200
  • 24f6e236a3 'moveresults' and 'luaD_poscall' moved up in the file Roberto Ierusalimschy 2016-12-13 13:52:21 -0200
  • 9f594ca6f5 LUA_PATHSUFFIX -> LUA_VERSUFFIX + LUA_VERSUFFIX used in the definition of LUA_INITVARVERSION, too. Roberto Ierusalimschy 2016-12-13 13:50:58 -0200
  • 4df4560bf5 detail (wrong comment) Roberto Ierusalimschy 2016-12-06 12:54:31 -0200
  • b2aa2ba046 using constants for "_LOADED" and "PRELOAD" Roberto Ierusalimschy 2016-12-04 18:17:24 -0200
  • beec5af201 'luaL_tolstring' uses metatable's "__name" when available Roberto Ierusalimschy 2016-12-04 18:09:45 -0200
  • 7b1fba69b7 using 'lastfree == NULL' to signal that table is using the dummy node for its hash part + new macro 'allocsizenode' Roberto Ierusalimschy 2016-11-07 10:38:35 -0200
  • 697593d8d5 bug: When a coroutine tries to resume a non-suspended coroutine, it can do some mess (and break C assertions) before detecting the error. Roberto Ierusalimschy 2016-10-19 10:34:27 -0200
  • e2dc807c6e check whether function is finalizer when finding a name for it + comments + some instructions can call functions in unespected ways (e.g., finalizers) Roberto Ierusalimschy 2016-10-19 10:32:10 -0200
  • 138d00176c new flag in 'CallInfo.callstatus' to tell whether function is running as a finalizer Roberto Ierusalimschy 2016-10-19 10:31:42 -0200
  • 8edbf57fb8 detail (ANSI C does not accept empty arguments to macros) Roberto Ierusalimschy 2016-09-20 13:37:45 -0300
  • 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 -0300
  • 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 -0300
  • aeb4c6fff1 comments + removed unused variable Roberto Ierusalimschy 2016-09-05 15:53:02 -0300
  • 3b91b07fd9 detail (macro 'l_checkmode' reimplemented as function) Roberto Ierusalimschy 2016-09-01 13:14:56 -0300
  • 349badabc1 wrong test in '#if' for floating-point type Roberto Ierusalimschy 2016-08-22 14:21:12 -0300
  • 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 -0300
  • 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 -0300
  • d55fd3455b redefine MAXINDEXRK (for debugging, to force most values to go through registers) Roberto Ierusalimschy 2016-07-19 14:13:00 -0300
  • 0d1c6f4188 MAXINDEXRK can be redefined (for debugging, to force most values to go through registers) Roberto Ierusalimschy 2016-07-19 14:12:21 -0300
  • fc6b32bcaa bug: Lua can generate wrong code in functions with too many constants Roberto Ierusalimschy 2016-07-19 14:12:07 -0300
  • de96e26afc bug: 'checkoption' could read past end of string + 'os.date' can handle embedded zeros Roberto Ierusalimschy 2016-07-18 14:58:58 -0300
  • 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 -0300
  • 788109a3de new bug: Checking a format for 'os.date' may read pass the format string Roberto Ierusalimschy 2016-07-15 14:24:09 -0300
  • 09c9fa36ea small corrections for C++ compliance Roberto Ierusalimschy 2016-06-27 10:15:08 -0300
  • 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 -0300
  • 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 -0300
  • 6487fb11fc all 'static' variables should be 'const' Roberto Ierusalimschy 2016-06-20 16:12:46 -0300
  • 644799537f allow more bits in 'callstatus' (use no extra space due to alignments) Roberto Ierusalimschy 2016-06-16 10:36:09 -0300
  • aa66ca76ce 'lua_pushglobaltable' returns 'void' v5.3.3 Roberto Ierusalimschy 2016-05-30 12:53:28 -0300
  • 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 -0300
  • 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 -0300
  • 4d5ab9baa6 'string.pack("cn")' does not accept strings longer than 'n' Roberto Ierusalimschy 2016-05-18 15:19:51 -0300
  • b65252b39b 'singlevaraux' returns result only in 'var->k' Roberto Ierusalimschy 2016-05-13 16:10:16 -0300
  • fbd8614bdb comment (FALLTHROUGH) Roberto Ierusalimschy 2016-05-13 16:09:46 -0300
  • 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 -0300
  • 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 -0300
  • 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 -0300
  • 22093f9c6e 'string.format("%q", number)' ensures a dot as decimal point Roberto Ierusalimschy 2016-05-02 10:58:01 -0300
  • 792ffaccf2 detail (macro should "use" all its arguments) Roberto Ierusalimschy 2016-05-01 17:06:09 -0300
  • 57cdb60429 no more time limits to pattern matching (at least for now) Roberto Ierusalimschy 2016-04-22 13:36:30 -0300
  • 89c09c8e40 match time limit defined by variable 'string.pattlimit' Roberto Ierusalimschy 2016-04-19 09:34:08 -0300
  • 48baa5e89c 'os.time(t)' normalizes 't' fields Roberto Ierusalimschy 2016-04-18 10:06:55 -0300
  • fdd7209688 error handling in 'wrap' does not coerce numbers into string messages Roberto Ierusalimschy 2016-04-11 16:19:55 -0300
  • 82a8e06524 details ('error' does not coerce numbers to strings + comments) Roberto Ierusalimschy 2016-04-11 16:18:40 -0300
  • c258870c59 diff for last bug was against wrong version Roberto Ierusalimschy 2016-04-11 12:34:21 -0300
  • e8e39a277f 'string.format"%q"' now works for all basic types (nil, boolean, numbers, and strings) Roberto Ierusalimschy 2016-04-08 18:15:02 -0300
  • 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 -0300
  • 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 -0300
  • 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 -0300