Commit Graph

  • ad960095bf avoid jumping into a variable scope (C++ does not allow that) Roberto Ierusalimschy 2018-01-09 12:23:40 -02:00
  • 33e3774f44 keep more opcode arguments byte-aligned Roberto Ierusalimschy 2018-01-09 09:24:12 -02:00
  • a9295a2b8e typos in comments Roberto Ierusalimschy 2017-12-30 18:46:18 -02:00
  • c6fedc92f8 new command 'print' (to print literal strings) in mini-language Roberto Ierusalimschy 2017-12-29 13:59:37 -02:00
  • 68af7cc81a another try with table resize. (Old version was leaving some elements unanchored while allocating new memory) Roberto Ierusalimschy 2017-12-29 13:58:23 -02:00
  • 28323aeaa6 by-one error when filling missing arguments in a tail call Roberto Ierusalimschy 2017-12-29 13:44:51 -02:00
  • cf7eff45f3 keep control of stack top in Lua functions concentrated in 'luaV_execute' Roberto Ierusalimschy 2017-12-28 13:42:57 -02:00
  • 8691612f01 when calling a hook, cannot decrease 'ci->top' (to preserve stack size if the stack is reallocated) Roberto Ierusalimschy 2017-12-28 12:17:09 -02:00
  • f99f3c42ff comment Roberto Ierusalimschy 2017-12-28 09:51:00 -02:00
  • f360e7778b assert cannot use instruction after the last Roberto Ierusalimschy 2017-12-22 14:43:59 -02:00
  • 4676f6599e new macros 'isOT'/'isIT' (plus exchanged parameters of OP_VARARG to make it similar to other 'isOT' instructions) Roberto Ierusalimschy 2017-12-22 12:16:46 -02:00
  • 1d5b885437 when running Lua code, there is no need to keep 'L->top' "correct"; set it only when needed. Roberto Ierusalimschy 2017-12-20 12:58:05 -02:00
  • 4dc0be950a new macro 'isLuacode' (to distinguish regular Lua code from hooks, where C code can run inside a Lua function). Roberto Ierusalimschy 2017-12-19 14:40:17 -02:00
  • 3153a41e33 no need to save 'pc' in case of allocation errors (allocation errors do not call message handlers) Roberto Ierusalimschy 2017-12-19 14:18:04 -02:00
  • d388c165ef new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variable with increment of 1) Roberto Ierusalimschy 2017-12-18 15:53:50 -02:00
  • ab07005568 new auxiliary function 'luaK_isKint' + removal of 'luaK_needclose', which was not being used anywhere. Roberto Ierusalimschy 2017-12-18 13:44:44 -02:00
  • 7024f49c42 default now is compiling without compatibility options + smaller stack size in debug mode (clang uses still more stack space when debugging). Roberto Ierusalimschy 2017-12-18 11:01:49 -02:00
  • 2f6f6abeba 'rehash' -> 'tablerehash' (to avoid name colisions when compiling Lua as a single file) Roberto Ierusalimschy 2017-12-18 11:00:57 -02:00
  • 3064edead2 details (cleaning uses of 'exp1') Roberto Ierusalimschy 2017-12-18 10:33:54 -02:00
  • f8c1c1469a some cleaning on signed opcode parameters Roberto Ierusalimschy 2017-12-15 16:53:48 -02:00
  • 4b6928e7f5 (1 << 31) with signed integer has undefined behavior in C Roberto Ierusalimschy 2017-12-15 16:35:22 -02:00
  • b3f924bc69 'Proto->numparams' does not include vararg parameter (one less subtraction when calling functions...) Roberto Ierusalimschy 2017-12-15 11:07:10 -02:00
  • e001d5aea6 'VRELOCABLE' -> 'VRELOC' Roberto Ierusalimschy 2017-12-14 12:24:02 -02:00
  • e752d84ed8 bug: memory-allocation error when resizing a table can leave it in an inconsistent state. Roberto Ierusalimschy 2017-12-13 16:35:03 -02:00
  • 86431a2f1c new opcodes BANDK/BORK/BXORK. (They do not use immediate operands because, too often, masks in bitwise operations are integers larger than one byte.) Roberto Ierusalimschy 2017-12-13 16:32:09 -02:00
  • 36cf8f3a3c Code should not change the stack level after the initialization of a string buffer. Roberto Ierusalimschy 2017-12-13 10:51:42 -02:00
  • 725c15a4ca when shrinking stack, always shrinks the CI list. (Stack overflow is not corelated to CI overflow anymore.) Roberto Ierusalimschy 2017-12-12 09:57:30 -02:00
  • b077b20206 back to reallocation when resizing the string table. (Not a good idea to explicitly allocate new memory when shrinking something.) Roberto Ierusalimschy 2017-12-12 09:52:35 -02:00
  • 3cf340f676 allows memory-allocation errors when shrinking blocks Roberto Ierusalimschy 2017-12-11 16:55:31 -02:00
  • 7ad20af2cf more freedom in handling memory-allocation errors (not all allocations automatically raise an error), which allows fixing a bug when resizing a table. Roberto Ierusalimschy 2017-12-11 16:53:53 -02:00
  • bfb88e99e9 'luaD_growstack' cannot raise any errors when 'raiseerror' is false (+ some comments) Roberto Ierusalimschy 2017-12-11 10:43:40 -02:00
  • c5ebed7399 'luaM_shrinkvector' raises an error if it cannot shrink the block (several parts of Lua use array size in protos as proxies for number of valid elements) Roberto Ierusalimschy 2017-12-11 10:27:48 -02:00
  • e663a24ab0 more freedom in handling memory-allocation errors (not all allocations automatically raise an error), which allows fixing a bug when resizing a table. Roberto Ierusalimschy 2017-12-08 15:28:25 -02:00
  • 40f823ec90 new C instruction "rawcheckstack" (to test failing in 'lua_checkstack') Roberto Ierusalimschy 2017-12-08 13:19:13 -02:00
  • 7622373033 using explicit tests for allocation overflow whenever possible Roberto Ierusalimschy 2017-12-07 16:59:52 -02:00
  • 46bc7f2bf7 detail (comment) Roberto Ierusalimschy 2017-12-07 16:53:33 -02:00
  • cc01d46247 new test function 'T.allocount' to restrict number of allocations before a memory-allocation error Roberto Ierusalimschy 2017-12-07 16:51:39 -02:00
  • 9fa1baf6de opcodes for order and shift can use several metamethods, so it is better to use a generic description + metamethod names in some error messages shown without '__' prefix Roberto Ierusalimschy 2017-12-07 13:44:10 -02:00
  • 49dfaf7447 avoid using one function for different tasks (malloc, free, etc.) Roberto Ierusalimschy 2017-12-06 16:36:31 -02:00
  • 348fa1ca56 bug: 'lua_pushcclosure' should not call the garbage collector when 'n' is zero. Roberto Ierusalimschy 2017-12-06 16:20:28 -02:00
  • ae11e37e53 bug: 'lua_pushcclosure' should not call the GC when 'n' is zero Roberto Ierusalimschy 2017-12-06 16:08:03 -02:00
  • c7ee7fe026 new opcodes OP_SHLI/OP_SHRI Roberto Ierusalimschy 2017-12-04 15:41:30 -02:00
  • 421e459684 'luaS_resize' can raise memory errors Roberto Ierusalimschy 2017-12-01 15:38:49 -02:00
  • 9d28b40152 rehashes string table always allocating a new array instead of reallocating old one. (Avoids problems if reallocation to a small size fails.) Roberto Ierusalimschy 2017-12-01 14:40:29 -02:00
  • e0bece77d6 detail Roberto Ierusalimschy 2017-12-01 13:44:51 -02:00
  • d0356d5f15 another value for LUAI_MAXCCALLS (must think more about that) Roberto Ierusalimschy 2017-12-01 13:08:14 -02:00
  • ac78b914b6 warnings from Visual Studio /W3 Roberto Ierusalimschy 2017-11-30 13:37:16 -02:00
  • 10b8c99bbb small peephole optimizations Roberto Ierusalimschy 2017-11-30 11:29:18 -02:00
  • bdc751ce23 details (comments) Roberto Ierusalimschy 2017-11-30 11:16:43 -02:00
  • 19c6b375c3 detail (spacing) Roberto Ierusalimschy 2017-11-30 10:03:00 -02:00
  • 745eb41993 new opcodes OP_RETURN0/OP_RETURN1 Roberto Ierusalimschy 2017-11-29 14:57:36 -02:00
  • c766e4103d 'luaV_execute' gets call info as extra argument (it is always available on call sites) Roberto Ierusalimschy 2017-11-29 11:02:17 -02:00
  • 36aecd4548 order opcodes cannot use 'K' operands Roberto Ierusalimschy 2017-11-28 13:26:15 -02:00
  • 1a5e8c1014 conditional jumps unified in label "condjump' + new variable 'vra' to avoid excessive use of macro 's2v' Roberto Ierusalimschy 2017-11-28 12:51:00 -02:00
  • ff5fe51044 using register 'k' for conditions in tests (we only need one bit there) Roberto Ierusalimschy 2017-11-28 10:58:18 -02:00
  • dfd188ba12 detail (identation of switch) Roberto Ierusalimschy 2017-11-28 09:19:07 -02:00
  • 093c16b67b new opcodes 'OP_LTI' and 'OP_LEI' Roberto Ierusalimschy 2017-11-27 15:44:31 -02:00
  • 599f1742c6 detail (typo in comments) Roberto Ierusalimschy 2017-11-23 17:29:04 -02:00
  • 73abfde2ef small simplifications around 'luaT_callorderTM' Roberto Ierusalimschy 2017-11-23 17:18:10 -02:00
  • 194a4f9710 small simplifications in 'luaD_poscall' Roberto Ierusalimschy 2017-11-23 16:29:41 -02:00
  • 196c87c9ce no more 'stackless' implementation; 'luaV_execute' calls itself recursively to execute function calls. 'unroll' continues all executions suspended by an yield (through a long jump) Roberto Ierusalimschy 2017-11-23 14:41:16 -02:00
  • 39f26b1480 more information from 'T.stacklevel' Roberto Ierusalimschy 2017-11-23 13:38:42 -02:00
  • 3c230cc825 using 'A' for register instead of 'B' in relational opcodes ('R(A)' is already created by default for all instructions.) Roberto Ierusalimschy 2017-11-22 17:15:44 -02:00
  • 41f2936d8f new opcode 'OP_EQI' for equality with immediate numbers Roberto Ierusalimschy 2017-11-22 16:41:20 -02:00
  • 14c3aa12b5 more direct implementation for tail calls. Roberto Ierusalimschy 2017-11-21 12:18:03 -02:00
  • f3ca52bfa9 in order comparison opcodes, fast track for floats too Roberto Ierusalimschy 2017-11-20 10:57:39 -02:00
  • c47111bd4e 'io.read' accepts multiple formats in a single string argument Roberto Ierusalimschy 2017-11-16 14:28:36 -02:00
  • e4e5aa85a2 detail ('signal' -> 'sign' in comments) Roberto Ierusalimschy 2017-11-16 11:19:06 -02:00
  • 4c0e36a46e new instruction 'OP_EQK' (for equality with constants) Roberto Ierusalimschy 2017-11-16 10:59:14 -02:00
  • 5440b42f43 using 'trap' to stop 'luaV_execute' when necessary (tracing and to update its copy of 'base' when the stack is reallocated) Roberto Ierusalimschy 2017-11-13 13:36:52 -02:00
  • 7d4828cc9f avoid accessing wrong union field Roberto Ierusalimschy 2017-11-13 10:26:30 -02:00
  • 62f3b7c472 detail Roberto Ierusalimschy 2017-11-13 10:20:51 -02:00
  • fb9be62f79 includes 'stdio.h' to allow prints when testing Roberto Ierusalimschy 2017-11-13 10:19:35 -02:00
  • 7c0175bc83 removed unused variable 'islocked' Roberto Ierusalimschy 2017-11-09 11:31:29 -02:00
  • 32fef60743 detail ('Protect' defined as an expression) Roberto Ierusalimschy 2017-11-08 17:01:02 -02:00
  • 26679ea35b new function 'luaV_flttointeger' to convert floats to integers (without string coercions) + string operands to bitwise operations handled by string metamethods Roberto Ierusalimschy 2017-11-08 12:50:23 -02:00
  • c3e5946fb2 new format for JUMP instructions (to allow larger offsets) Roberto Ierusalimschy 2017-11-07 15:20:42 -02:00
  • ad0704e40c back to 'CallInfo' (no gains with its removal) Roberto Ierusalimschy 2017-11-07 11:25:26 -02:00
  • 5a3f26f855 fitting a StackValue structure into 32 bytes (for 64-bit machines) Roberto Ierusalimschy 2017-11-06 15:34:06 -02:00
  • 93fd67b793 no more 'CallInfo' structure Roberto Ierusalimschy 2017-11-04 10:57:02 -02:00
  • 6bb3e40a8d 'lua_Debug' not using 'CallInfo' Roberto Ierusalimschy 2017-11-03 18:41:05 -02:00
  • 7612f7735d removing uses of 'CallInfo' Roberto Ierusalimschy 2017-11-03 17:33:22 -02:00
  • 472c560705 no more useful fields in CallInfo Roberto Ierusalimschy 2017-11-03 15:22:54 -02:00
  • 54eb35a8aa more fields moved out of 'CallInfo' Roberto Ierusalimschy 2017-11-03 10:12:30 -02:00
  • ba36180fd7 new API for 'lua_resume' + cleaning the uses of the 'extra' field in 'CallInfo' Roberto Ierusalimschy 2017-11-02 09:28:56 -02:00
  • b9e76be8a6 using 'L->func' when possible Roberto Ierusalimschy 2017-11-01 16:20:48 -02:00
  • c5482468fd baby steps to remove 'CallInfo': keeping 'L->func' correct Roberto Ierusalimschy 2017-10-31 15:54:35 -02:00
  • ad5dcdcf0f detail: in 'isinstack', check against the whole stack instead of against the stack frame Roberto Ierusalimschy 2017-10-31 15:14:02 -02:00
  • de9128d09d do not mess up the debt when the collector is not running Roberto Ierusalimschy 2017-10-31 13:29:28 -02:00
  • 1d8920dd7f some cleaning in GC parameters Roberto Ierusalimschy 2017-10-11 09:38:45 -03:00
  • 911f1e3e7f raw operation should not convert strings to numbers Roberto Ierusalimschy 2017-10-10 17:05:40 -03:00
  • a1ef58b3a5 eplicit 1-bit opcode operand 'k' Roberto Ierusalimschy 2017-10-04 18:56:32 -03:00
  • 283e7455ff detail Roberto Ierusalimschy 2017-10-04 18:53:03 -03:00
  • 8fbe9e3470 new opcodes with immediate integer operand for all arithmetic operations Roberto Ierusalimschy 2017-10-04 12:49:24 -03:00
  • 9ed9f40f1e avoid warning about 'const' Roberto Ierusalimschy 2017-10-04 12:49:05 -03:00
  • 940472c75c opcode size increased to 7 bits Roberto Ierusalimschy 2017-10-02 19:51:32 -03:00
  • f3b3d9b5c2 string constants (Kstr) must fit into 'B' register Roberto Ierusalimschy 2017-10-02 19:50:57 -03:00
  • 7f9a32ad85 new function 'printcode' Roberto Ierusalimschy 2017-10-01 16:17:51 -03:00
  • bc1b0733b8 avoid the use of bit 'Bk' ('B' will lose this bit soon) Roberto Ierusalimschy 2017-10-01 16:13:43 -03:00
  • 722bdbe17d no more 'getBMode'-'getCMode' (imprecise + we will need more space for op mode) + better control of op modes Roberto Ierusalimschy 2017-09-28 13:53:29 -03:00