Commit Graph

  • bdcde45d05 updated to use jump tables Roberto Ierusalimschy 2018-03-05 11:26:18 -0300
  • 8b0434e5e6 both 'fTransfer' and 'nTransfer' may not fit in a 'char' Roberto Ierusalimschy 2018-03-05 11:15:32 -0300
  • 8b0b675149 added casts (warnings in VS) Roberto Ierusalimschy 2018-03-05 11:15:04 -0300
  • 8c429311a3 typo in comment Roberto Ierusalimschy 2018-03-05 11:13:55 -0300
  • 66b7b075a6 'math.random' using the xorshift128+ algorithm Roberto Ierusalimschy 2018-03-05 11:07:48 -0300
  • 62a392ff46 using jump tables when available Roberto Ierusalimschy 2018-03-02 15:59:19 -0300
  • 893f382e94 Jump Table for the interpreter Roberto Ierusalimschy 2018-03-02 15:56:14 -0300
  • 0eb10c6303 'LUA_USE_READLINE' moved to the make file Roberto Ierusalimschy 2018-03-02 15:31:51 -0300
  • 00008b8ed0 back to one format per argument Roberto Ierusalimschy 2018-03-02 15:25:00 -0300
  • df49384516 year in copyright changed to 2018 Roberto Ierusalimschy 2018-03-02 13:30:47 -0300
  • fbea553ca2 'lua_setiuservalue' removes value from the stack even in case of error Roberto Ierusalimschy 2018-02-27 17:01:55 -0300
  • 34b00c16e2 removed compatibility code with older versions Roberto Ierusalimschy 2018-02-27 15:47:32 -0300
  • 12110dec0e module has been deprecated. Roberto Ierusalimschy 2018-02-27 15:46:26 -0300
  • 4105cafb84 no more 'bitlib' Roberto Ierusalimschy 2018-02-27 15:27:30 -0300
  • 76ff55750e no optimizations in test mode + no more compat with 5.2 + a few more options in comments Roberto Ierusalimschy 2018-02-27 15:24:23 -0300
  • b7edf5d2d8 metamethods for 'removekey'/'keyin' Roberto Ierusalimschy 2018-02-27 14:48:28 -0300
  • ef8263f81f better names for macros for tags and types. rttype -> rawtt; ttyperaw -> withvariant; ttype -> ttypetag; tnov -> ttype Roberto Ierusalimschy 2018-02-26 11:16:05 -0300
  • 2952bc5fc9 special compact representation for userdata with no user values (a common case) Roberto Ierusalimschy 2018-02-26 10:35:03 -0300
  • 38d3bc8909 using 'offsetof' to compute the size of parts of a structure Roberto Ierusalimschy 2018-02-25 10:40:00 -0300
  • 75efc6722b avoid variant tags with the same value of the original type (to expose bugs more easily) Roberto Ierusalimschy 2018-02-25 09:52:32 -0300
  • d766e2ae17 first (parcial) implementation of 'keyin'/'removekey' (still no metamethods, no raw verssions) Roberto Ierusalimschy 2018-02-25 09:48:16 -0300
  • f055a9dffd added check in 'obj2gco' to prevent its use in non Lua-object pointers (otherwise its cast is blind, casting any value given to it) Roberto Ierusalimschy 2018-02-25 09:43:52 -0300
  • 4a7fe61806 in 'clearbykeys', clear keys of just-removed entries too Roberto Ierusalimschy 2018-02-23 10:21:27 -0300
  • 9243c414d9 first version of empty entries in tables (so that, in the future, tables can contain regular nil entries) Roberto Ierusalimschy 2018-02-23 10:16:18 -0300
  • 477ca2fe8c some reorganization in 'lobject.h' (just moving stuff around) Roberto Ierusalimschy 2018-02-22 14:28:10 -0300
  • c72ac048b9 conditional jumps "deunified" (if a jump table is used, the unification may harm jump prediction.) Roberto Ierusalimschy 2018-02-21 16:43:44 -0300
  • b03dddf9e4 removed coercion string->number in bitwise operations (can be done with a Lua module) Roberto Ierusalimschy 2018-02-21 14:48:31 -0300
  • c80c7a49fd details (comments) Roberto Ierusalimschy 2018-02-21 13:28:12 -0300
  • 212095a601 new opcodes OP_GTI/OP_GEI Roberto Ierusalimschy 2018-02-21 12:49:32 -0300
  • c67603fafb using new 'lua_newuserdatauv' instead of 'lua_newuserdata' Roberto Ierusalimschy 2018-02-21 10:48:44 -0300
  • 06865aa01d simpler implementation for 'LTintfloat'/'LEintfloat' + 'LTfloatint'/'LEfloatint' Roberto Ierusalimschy 2018-02-21 10:47:03 -0300
  • 465b474899 small reorganization of 'luaV_flttointeger'/'luaV_tointeger' Roberto Ierusalimschy 2018-02-21 09:54:26 -0300
  • 6353d619a5 detail (comment) Roberto Ierusalimschy 2018-02-20 17:52:50 -0300
  • ca6fe7449a userdata can have multiple user values Roberto Ierusalimschy 2018-02-20 13:52:50 -0300
  • 1afd5a152d more generic way to handle 'gclist' Roberto Ierusalimschy 2018-02-19 17:06:56 -0300
  • 422318f677 two new fields 'fTransfer'/'nTransfer' in 'lua_Debug' structure (for information about values being given and returned in function calls) Roberto Ierusalimschy 2018-02-17 17:29:29 -0200
  • 49dae52d08 correct way to check stack space for vararg functions Roberto Ierusalimschy 2018-02-17 17:20:00 -0200
  • 104d249ffb in return hook, 'top' must be corrected only if smaller than 'ci->top'. (It may be larger when returning multiple values, and then it must be larger to preserve that stack slice.) Roberto Ierusalimschy 2018-02-17 16:22:00 -0200
  • c7a8cba745 no more 'nfield' string Roberto Ierusalimschy 2018-02-15 16:06:24 -0200
  • 0682fe8169 some simplifications/optimizations in returns from Lua functions Roberto Ierusalimschy 2018-02-15 13:34:29 -0200
  • b1379936cf vararg back to '...' (but with another implementation) new implementation should have zero overhead for non-vararg functions Roberto Ierusalimschy 2018-02-09 13:16:06 -0200
  • 4e0de3a43c details Roberto Ierusalimschy 2018-02-07 13:55:18 -0200
  • 318a9a5859 new opcode 'PREPVARARG' (avoids test for vararg function in all function calls) Roberto Ierusalimschy 2018-02-07 13:18:04 -0200
  • 73d797ce7e detail (order of 'OT' and 'IT' bits corresponds with macro 'opmode') Roberto Ierusalimschy 2018-02-07 13:04:41 -0200
  • 51280ef2ad call hooks for Lua functions called by 'luaV_execute' Roberto Ierusalimschy 2018-02-06 17:16:56 -0200
  • fc3eaa2559 GC default mode for the stand-alone interpreter is generational mode Roberto Ierusalimschy 2018-02-06 13:32:36 -0200
  • daff7c3b4d small corrections in generational mode (cannot call finalizers in emergency collections + should set everything before calling finalizers) Roberto Ierusalimschy 2018-02-05 15:14:54 -0200
  • a131eae925 default for minor collection intervals a little larger Roberto Ierusalimschy 2018-02-05 15:14:29 -0200
  • 022abc301b 'gcemergency' should be zero before any memory allocation Roberto Ierusalimschy 2018-02-05 15:11:37 -0200
  • 56e50e8bc5 'collectgarbage' returns old mode when changing mode Roberto Ierusalimschy 2018-02-05 15:10:52 -0200
  • 90569630d6 detail (uses a reserved-format name for an internal type in the registry) Roberto Ierusalimschy 2018-01-29 17:13:27 -0200
  • dc0ab1e8ca warnings in VS (implicit casts from ptrdiff_t to int) Roberto Ierusalimschy 2018-01-29 14:21:35 -0200
  • e2b15aa21d janitor work on casts Roberto Ierusalimschy 2018-01-28 13:13:26 -0200
  • 89110986d7 bug in tailcall of vararg functions (when adjusting missing parameters) Roberto Ierusalimschy 2018-01-28 11:39:52 -0200
  • 53979dfe0d calling a vararg function needs to check GC (because it creates a new table) Roberto Ierusalimschy 2018-01-28 10:08:04 -0200
  • 6710a2b0ef detail (comment) Roberto Ierusalimschy 2018-01-28 10:07:53 -0200
  • 5bd8d388de OP_CONCAT does not move its result (to simplify its execution) Roberto Ierusalimschy 2018-01-27 14:56:33 -0200
  • 28f215ecf8 comments Roberto Ierusalimschy 2018-01-18 14:24:31 -0200
  • d2fb34ac88 'OP_TAILCALL' calling C functions finishes the call and returns (instead of waiting for following 'OP_RETURN') Roberto Ierusalimschy 2018-01-14 15:27:50 -0200
  • ab0a851db4 'luaD_tryfuncTM' can ensure it does not change the stack Roberto Ierusalimschy 2018-01-10 17:19:27 -0200
  • 728ff94595 error handler in protected calls must be a function Roberto Ierusalimschy 2018-01-10 10:02:35 -0200
  • ad960095bf avoid jumping into a variable scope (C++ does not allow that) Roberto Ierusalimschy 2018-01-09 12:23:40 -0200
  • 33e3774f44 keep more opcode arguments byte-aligned Roberto Ierusalimschy 2018-01-09 09:24:12 -0200
  • a9295a2b8e typos in comments Roberto Ierusalimschy 2017-12-30 18:46:18 -0200
  • c6fedc92f8 new command 'print' (to print literal strings) in mini-language Roberto Ierusalimschy 2017-12-29 13:59:37 -0200
  • 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 -0200
  • 28323aeaa6 by-one error when filling missing arguments in a tail call Roberto Ierusalimschy 2017-12-29 13:44:51 -0200
  • cf7eff45f3 keep control of stack top in Lua functions concentrated in 'luaV_execute' Roberto Ierusalimschy 2017-12-28 13:42:57 -0200
  • 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 -0200
  • f99f3c42ff comment Roberto Ierusalimschy 2017-12-28 09:51:00 -0200
  • f360e7778b assert cannot use instruction after the last Roberto Ierusalimschy 2017-12-22 14:43:59 -0200
  • 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 -0200
  • 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 -0200
  • 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 -0200
  • 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 -0200
  • d388c165ef new opcodes 'FORLOOP1'/'FORPREP1' for "basic for" (integer variable with increment of 1) Roberto Ierusalimschy 2017-12-18 15:53:50 -0200
  • ab07005568 new auxiliary function 'luaK_isKint' + removal of 'luaK_needclose', which was not being used anywhere. Roberto Ierusalimschy 2017-12-18 13:44:44 -0200
  • 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 -0200
  • 2f6f6abeba 'rehash' -> 'tablerehash' (to avoid name colisions when compiling Lua as a single file) Roberto Ierusalimschy 2017-12-18 11:00:57 -0200
  • 3064edead2 details (cleaning uses of 'exp1') Roberto Ierusalimschy 2017-12-18 10:33:54 -0200
  • f8c1c1469a some cleaning on signed opcode parameters Roberto Ierusalimschy 2017-12-15 16:53:48 -0200
  • 4b6928e7f5 (1 << 31) with signed integer has undefined behavior in C Roberto Ierusalimschy 2017-12-15 16:35:22 -0200
  • b3f924bc69 'Proto->numparams' does not include vararg parameter (one less subtraction when calling functions...) Roberto Ierusalimschy 2017-12-15 11:07:10 -0200
  • e001d5aea6 'VRELOCABLE' -> 'VRELOC' Roberto Ierusalimschy 2017-12-14 12:24:02 -0200
  • e752d84ed8 bug: memory-allocation error when resizing a table can leave it in an inconsistent state. Roberto Ierusalimschy 2017-12-13 16:35:03 -0200
  • 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 -0200
  • 36cf8f3a3c Code should not change the stack level after the initialization of a string buffer. Roberto Ierusalimschy 2017-12-13 10:51:42 -0200
  • 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 -0200
  • 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 -0200
  • 3cf340f676 allows memory-allocation errors when shrinking blocks Roberto Ierusalimschy 2017-12-11 16:55:31 -0200
  • 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 -0200
  • bfb88e99e9 'luaD_growstack' cannot raise any errors when 'raiseerror' is false (+ some comments) Roberto Ierusalimschy 2017-12-11 10:43:40 -0200
  • 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 -0200
  • 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 -0200
  • 40f823ec90 new C instruction "rawcheckstack" (to test failing in 'lua_checkstack') Roberto Ierusalimschy 2017-12-08 13:19:13 -0200
  • 7622373033 using explicit tests for allocation overflow whenever possible Roberto Ierusalimschy 2017-12-07 16:59:52 -0200
  • 46bc7f2bf7 detail (comment) Roberto Ierusalimschy 2017-12-07 16:53:33 -0200
  • cc01d46247 new test function 'T.allocount' to restrict number of allocations before a memory-allocation error Roberto Ierusalimschy 2017-12-07 16:51:39 -0200
  • 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 -0200
  • 49dfaf7447 avoid using one function for different tasks (malloc, free, etc.) Roberto Ierusalimschy 2017-12-06 16:36:31 -0200