Commit Graph

591 Commits

Author SHA1 Message Date
Roberto Ierusalimschy 9de384e27a removed useless 'include math.h' 2014-10-28 15:27:50 -02:00
Roberto Ierusalimschy bdf566a8a3 `name' in comments changed to 'name' 2014-10-25 09:50:46 -02:00
Roberto Ierusalimschy 0d31efb365 'lua_stringtonum' -> 'lua_stringtonumber' 2014-10-17 16:17:55 -03:00
Roberto Ierusalimschy 89602bf747 'lua_strtonum' -> 'lua_stringtonum' 2014-10-15 11:27:40 -03:00
Roberto Ierusalimschy 2a21f6c894 'lua_Kcontext' -> 'lua_KContext' 2014-10-07 15:29:13 -03:00
Roberto Ierusalimschy 9b25347a67 detail 2014-08-27 11:59:33 -03:00
Roberto Ierusalimschy 7f1a2ad699 new functions 'lua_geti/lua_seti' (non raw) 2014-08-21 17:07:56 -03:00
Roberto Ierusalimschy 2be88d5084 'lua_Ctx' -> 'lua_Kcontext' 2014-08-01 14:33:08 -03:00
Roberto Ierusalimschy 34ac039fb8 new macro 'cvt2str' to better control whether numbers are convertible
to strings
2014-07-30 11:00:14 -03:00
Roberto Ierusalimschy 97e299c395 'lua_replace' implemented as a macro using 'lua_copy' 2014-07-22 15:07:47 -03:00
Roberto Ierusalimschy c697aa30bc more precise type for argument to 'aux_upvalue' 2014-07-21 13:02:57 -03:00
Roberto Ierusalimschy e43612aaf6 put the restriction that 'luaC_barrierback' works only on tables
in its prototype
2014-07-19 12:09:37 -03:00
Roberto Ierusalimschy bb12903120 type 'Udata' refers directly to structure inside the union (union
used only for aligning purposes now)
2014-07-18 11:46:47 -03:00
Roberto Ierusalimschy 56137d58ff added check for conversion 'obj2gco' (and corrections for small
problems detected by this check)
2014-07-18 09:17:54 -03:00
Roberto Ierusalimschy 1aa4f69b51 new type 'lua_Ctx' for continuation-function contexts (to allow type
to be configurable)
2014-07-17 10:53:37 -03:00
Roberto Ierusalimschy 5bbb4a06a6 removed unused parameter Ä'L' in macro 'api_check' and company 2014-07-15 18:26:50 -03:00
Roberto Ierusalimschy d4fb848be7 added api check in 'lua_typename' (tag is valid) 2014-07-15 18:14:49 -03:00
Roberto Ierusalimschy b9dcf9974d detail (typos in comments) 2014-06-30 16:48:08 -03:00
Roberto Ierusalimschy 08a9c9faa3 detail (comment) 2014-06-26 15:28:24 -03:00
Roberto Ierusalimschy 84fe52dbeb unsigned-manipulation functions (lua_puhsunsigned, lua_tounsigned, etc.)
deprecated
2014-06-26 14:25:11 -03:00
Roberto Ierusalimschy 54ac5960a8 LUA_MAXUNSIGNED was only used to define 2.0^intnumbits (and that
definition was not strictly portable), so it was removed and
replaced by a more correct and direct definition for 2.0^intnumbits
(only where it was needed)
2014-06-24 14:02:00 -03:00
Roberto Ierusalimschy 89b56e7d84 more precision between closure types ('LClosure' x 'CClosure') 2014-06-19 15:27:20 -03:00
Roberto Ierusalimschy fa3113ffbf cleaner way to handle bit CIST_OAH (with auxiliar macros) 2014-06-12 16:07:30 -03:00
Roberto Ierusalimschy 8b5940e7ca must also reset CIST_OAH if necessary (CallInfo is not a fresh one) 2014-06-10 16:13:26 -03:00
Roberto Ierusalimschy 542b6cfc02 no need for field 'status' in structure 'CallInfo' (after removal
of 'lua_getctx') + field 'old_allowhook' can be packed into a single
bit
2014-06-10 15:51:21 -03:00
Roberto Ierusalimschy 6f6fd96e3b new type lua_KFunction + no more 'lua_getctx' 2014-06-10 14:41:38 -03:00
Roberto Ierusalimschy 8927c14317 removed macro 'luai_checknum' (as NaN trick is not doable now) 2014-05-15 17:28:39 -03:00
Roberto Ierusalimschy fd1672ba98 avoid non-conformant pointer arithmetic in api check for 'lua_rotate' 2014-05-15 12:22:45 -03:00
Roberto Ierusalimschy e3b9569e04 function 'reverse' uses appropriate variants of 'setobj' for better
documentation
2014-05-14 15:32:30 -03:00
Roberto Ierusalimschy 965993da07 comments added to 'lua_rotate' 2014-05-14 11:20:17 -03:00
Roberto Ierusalimschy 5a5a834975 new API function 'lua_rotate' 2014-05-13 16:40:28 -03:00
Roberto Ierusalimschy 4fe11ae232 'lua_getuservalue' returns type of user value 2014-05-01 15:21:32 -03:00
Roberto Ierusalimschy c549d4fe64 'lua_strtonum' (and 'luaO_str2num') now return string size, instead of
receiving it
2014-05-01 15:18:06 -03:00
Roberto Ierusalimschy 5388aa9fc0 'luaO_str2d' + 'luaO_str2int' replaced by 'luaO_str2num' (which converts
to float or integer according to the string syntax)
2014-04-30 13:48:44 -03:00
Roberto Ierusalimschy ffa43df3cd 'setnvalue' -> 'setfltvalue' (for consitency with 'fltvalue') 2014-04-29 15:14:16 -03:00
Roberto Ierusalimschy 037a70dfea cast_u2s/cast_s2u renamed l_castS2U/l_castU2S to be configurable from
outside (mostly for testing)
2014-04-15 13:32:49 -03:00
Roberto Ierusalimschy 8f961da3db macros cast_integer/cast_unsigned replaced by cast_u2s/cast_s2u, that
should be used only between lua_Integer and lua_Unsigned
2014-04-15 11:29:30 -03:00
Roberto Ierusalimschy ef789d4161 new global macro 'LUA_MAXUNSIGNED' 2014-04-12 11:45:10 -03:00
Roberto Ierusalimschy 493b3fdd65 added an 'api_check' for negative sizes in 'lua_checkstack' 2014-04-01 15:51:23 -03:00
Roberto Ierusalimschy a3addae036 lua_gettable and similars return type of gotten value 2014-03-12 17:57:40 -03:00
Roberto Ierusalimschy 87c930676f detail (comments) 2014-02-26 09:39:30 -03:00
Roberto Ierusalimschy 295f7ac04e added 'stip' parameter to lua_dump/string.dump 2014-02-25 11:30:21 -03:00
Roberto Ierusalimschy c86b9da022 userdata can have any Lua value as uservalue 2014-02-19 10:52:42 -03:00
Roberto Ierusalimschy ffa96d988d field 'op' renamed to 'open' 2014-02-15 11:12:01 -02:00
Roberto Ierusalimschy 1cce3e6842 change in the way 'collectgarbage("step", size)' interprets 'size'
(mimicking the way the GC itself behaves when Lua allocates 'size'
Kbytes)
2014-02-14 14:43:14 -02:00
Roberto Ierusalimschy 90b0ac6495 limit to 'gcstepmul' imposed by 'lua_gc' (+ some details in 'lgc.c') 2014-02-13 15:25:20 -02:00
Roberto Ierusalimschy 733c58595b no more local collection 2014-02-13 10:11:34 -02:00
Roberto Ierusalimschy 86dd8bf3f5 no more 'L' in macros "luai_num*" (several places that use those macros
cannot throw errors anyway...)
2014-01-27 11:34:32 -02:00
Roberto Ierusalimschy 1ea2d20f74 first implementation of '<<', '>>', and '~' (bitwise not) 2013-12-30 18:47:58 -02:00
Roberto Ierusalimschy cac1ebd1e0 detail ('ttisuserdata' renamed to 'ttisfulluserdata') 2013-12-04 10:15:22 -02:00
Roberto Ierusalimschy 686e57cf9c GC local pause configurable 2013-09-13 13:21:52 -03:00
Roberto Ierusalimschy 06156e7575 detail (setmetatable do not need to use a back GC barrier) 2013-09-11 17:15:31 -03:00
Roberto Ierusalimschy af35c7f398 upvalues collected by reference count 2013-08-27 15:53:35 -03:00
Roberto Ierusalimschy 439d74e29f added 'local' bit (true => object is only refered by local variables) 2013-08-16 15:55:49 -03:00
Roberto Ierusalimschy 677d90165f no more generational collection !!! 2013-08-05 13:58:28 -03:00
Roberto Ierusalimschy 5519c98655 'lua_cvtonum' -> 'lua_strtonum'; converts only strings to numbers 2013-07-05 11:29:51 -03:00
Roberto Ierusalimschy d6f5fb2d2c avoid warning for unary minus over an unsigned value 2013-06-20 12:12:43 -03:00
Roberto Ierusalimschy 453450d687 new macro 'l_floor' (allows 'floorf' even when other math operations
do not have an 'f' variant)
2013-06-20 12:02:49 -03:00
Roberto Ierusalimschy 53210d7e5b correct way (I hope) to convert floats to unsigned int 2013-06-14 15:32:45 -03:00
Roberto Ierusalimschy 932e7fb0e1 'lua_tounsigned' takes number modulo 2^numbits as a result when
number is a float
(That may change...)
2013-06-04 16:34:51 -03:00
Roberto Ierusalimschy b5ec26101f new API function 'lua_cvtonum' to convert a value (number or string)
to a number, following the rules of the language to create integers
or floats
2013-05-14 13:00:11 -03:00
Roberto Ierusalimschy 67532d5a10 constant folding and API arithmetic with integers 2013-05-02 09:37:24 -03:00
Roberto Ierusalimschy 88bf2f83c0 new function 'tointeger' + 'luaV_arith' replaced by 'luaT_trybinTM' 2013-04-29 14:12:50 -03:00
Roberto Ierusalimschy 360587f319 favoring 'tonumber' over 'nvalue' 2013-04-26 16:51:17 -03:00
Roberto Ierusalimschy 4abe99dc34 new interface for 'tonumber' 2013-04-26 13:03:50 -03:00
Roberto Ierusalimschy d4e6b75098 "integer" keys in tables are now lua_Integer, not 'int'. 2013-04-26 12:39:25 -03:00
Roberto Ierusalimschy 01b6fe0cbf new API function 'lua_isinteger' 2013-04-25 10:52:49 -03:00
Roberto Ierusalimschy 7a543cfae6 2013-04-15 12:43:34 -03:00
Roberto Ierusalimschy 8f8665fffa 'ttypenv' -> 'ttnov' 2013-04-12 16:07:09 -03:00
Roberto Ierusalimschy 75250a237c typos in comments 2013-03-16 18:10:18 -03:00
Roberto Ierusalimschy 7ea68d84c4 added comment 2012-12-05 17:49:55 -02:00
Roberto Ierusalimschy 0e9167bc72 missing brackets in 'if' body (no bug, only 'luaC_checkfinalizer' is
called to do nothing)
2012-12-05 17:09:23 -02:00
Roberto Ierusalimschy 52f9ccd298 removed unreacheable 'lua_unlock' 2012-11-04 18:08:17 -02:00
Roberto Ierusalimschy ad5da6ba14 API functions get acceptable indices except when not possible (when
they modify the value at that index) + new macro 'ispseudo' +
specific test 'api_checkstackindex'
2012-10-19 12:52:46 -03:00
Roberto Ierusalimschy cf160abcf9 no more macro 'changenvalue' 2012-09-11 15:21:44 -03:00
Roberto Ierusalimschy 53480f1163 details (remove of some extra spaces) 2012-08-14 15:12:34 -03:00
Roberto Ierusalimschy cc2a60ecb7 bugs in yields inside debug hooks 2012-06-08 12:14:04 -03:00
Roberto Ierusalimschy 21ed264a38 compensate for 'GCSTEPSIZE' in GC steps 2012-05-23 12:42:27 -03:00
Roberto Ierusalimschy 086da10dac merge of fields 'lastmajormem' (used in gen. mode) and 'estimate'
(used in inc. mode)
2012-05-22 14:50:39 -03:00
Roberto Ierusalimschy 398811a313 simpler macro 'luaC_condGC' + better 'step' in 'lua_gc' +
micro bug in 'luaC_checkfinalizer' (current sweep object could be
removed from 'allgc' list)
2012-05-21 10:18:10 -03:00
Roberto Ierusalimschy 31829ad177 test for whether collector is running moved from function to
macro 'luaC_condGC'.
2012-05-11 16:22:33 -03:00
Roberto Ierusalimschy 7bcb2462e4 comments 2011-11-30 10:58:57 -02:00
Roberto Ierusalimschy 3617e04e97 'lua_load' has an extra argument 'mode' 2011-11-29 13:55:08 -02:00
Roberto Ierusalimschy b5d7255034 small changes to avoid some warnings 2011-11-16 16:51:36 -02:00
Roberto Ierusalimschy 166ce15512 cannot apply macro 'getstr' over NULL 2011-10-31 15:48:51 -02:00
Roberto Ierusalimschy 475e6c5352 'lua_setglobal/lua_getglobal' implemented as functions to avoid
problems with stack indices
(e.g., lua_getglobal(L, lua_tostring(L, -1)) )
2011-10-24 14:53:05 -02:00
Roberto Ierusalimschy af00a0772c new functions lua_rawsetp/lua_rawgetp 2011-10-24 12:54:05 -02:00
Roberto Ierusalimschy e24f1ee9ff lint (unreachable code) 2011-09-30 09:44:45 -03:00
Roberto Ierusalimschy ad90447eb6 detail: new macros for non-valid values 2011-09-26 17:17:27 -03:00
Roberto Ierusalimschy 89b59eee73 bug: __newindex metamethod may not work if metatable is its own
metatable + luaV_settable does not create entry when there is a
metamethod (and therefore entry is useless)
2011-08-17 17:26:47 -03:00
Roberto Ierusalimschy 92afcf2823 no more 'luaH_setstr (used only once) + 'luaH_setint' receives value
to be set.
2011-08-09 17:58:29 -03:00
Roberto Ierusalimschy fd80e63468 configuration for NaN trick big-endian + macro 'luai_checknum' to
ensure numbers comming from C are not "improper" (some kinds of
signaling NaNs)
2011-06-13 11:13:06 -03:00
Roberto Ierusalimschy 3b44821334 stricter control (using tag variants) over closure kinds (Lua x C) 2011-06-02 16:31:40 -03:00
Roberto Ierusalimschy 821bd7025e more uniform names for 'equalobj'-related functions 2011-05-31 15:27:56 -03:00
Roberto Ierusalimschy 9b7dddad7d no need for two different implementations for equality (one raw and
one with metamethods)
2011-05-31 15:24:36 -03:00
Roberto Ierusalimschy 119d5e46d5 lua_arith gets no fake operand for unary minus 2011-04-05 11:26:23 -03:00
Roberto Ierusalimschy 868ff40339 full collection does not restart collector + avoid changing GC
state if an error happens in a step
2010-12-29 16:00:23 -02:00
Roberto Ierusalimschy 551b076f1c change in the relationship between totalbytes and GCdebt - luaM_realloc_
is too critical to update two counters
2010-12-20 17:40:07 -02:00
Roberto Ierusalimschy 737f119187 better control for GC running or stopped 2010-12-20 16:17:46 -02:00
Roberto Ierusalimschy 9b7a12c46d finalizers (__gc) for tables 2010-11-26 12:32:31 -02:00
Roberto Ierusalimschy f1629217f1 code for conversion macros moved from luaconf to llimits + 'uint'
renamed to 'unsigned' in those macros
2010-11-03 13:16:17 -02:00
Roberto Ierusalimschy c6b64ffe65 new type lua_Unsigned and corresponding projection/injection functions 2010-10-25 18:31:11 -02:00
Roberto Ierusalimschy 4590a89b32 corrected warnings from different compilers (mostly casts and small
details)
2010-10-25 17:01:37 -02:00
Roberto Ierusalimschy e3eabcf913 'lua_[gs]etupvalue' may work even without debug information
(that is, without upvalue names)
2010-09-07 16:35:04 -03:00
Roberto Ierusalimschy 0df2238063 name "_ENV" configurable through 'luaconf.h' 2010-09-07 16:21:39 -03:00
Roberto Ierusalimschy 6828f6d427 new parameter 'majorinc' to control frequency of major collections
in generational mode
2010-09-03 11:14:01 -03:00
Roberto Ierusalimschy 5e7dbd0b8b api checks to ensure that thread is OK when using lua_call/lua_pcall 2010-08-04 15:40:28 -03:00
Roberto Ierusalimschy 8b7cf8c62d 'lua_[gs]etenv' -> 'lua_[gs]etuservalue' 2010-07-25 12:18:19 -03:00
Roberto Ierusalimschy a9dc7c8828 functions lua_tonumber/lua_tointeger replaced by lua_tonumberx/lua_tointegerx
that have an extra out parameter with conversion status
2010-07-02 14:35:06 -03:00
Roberto Ierusalimschy 3819c30e55 better names for barrier macros 2010-06-04 10:05:29 -03:00
Roberto Ierusalimschy bd619b9311 new macro MAXUPVAL (maximum number of upvalues per closure) 2010-05-31 13:08:55 -03:00
Roberto Ierusalimschy 4a925c1552 in 'absindex', do not need to call gettop (can inline it) 2010-05-14 10:15:26 -03:00
Roberto Ierusalimschy e924a7f9ea new API function 'lua_absindex' 2010-05-12 11:09:20 -03:00
Roberto Ierusalimschy 8e1bdda66a stupid bug when calling 'luaC_changemode' (in function lua_gc) 2010-05-07 15:10:01 -03:00
Roberto Ierusalimschy d77898597e new function 'luaC_changemode' 2010-05-05 15:53:41 -03:00
Roberto Ierusalimschy 3eb1788bb4 new way to control GC speed (keeping a 'debt' counter) 2010-04-29 14:31:31 -03:00
Roberto Ierusalimschy ed720d09f3 upvalue barriers for Lua functions must act on the upvalue itself,
not on its closure
2010-04-20 17:14:50 -03:00
Roberto Ierusalimschy 1bb407e494 in lua_gc/step, 'luaC_step' changes GCthreshold, so there was little
control over the real step size.
2010-04-19 13:33:19 -03:00
Roberto Ierusalimschy 53f9499f7f "light C function" is a better name than "C-function pointer" 2010-04-18 10:22:48 -03:00
Roberto Ierusalimschy 7dfa4cd655 first implementation of light C functions 2010-04-14 12:13:48 -03:00
Roberto Ierusalimschy a2f98314a3 'lua_pushstring' now uses 'luaS_new' 2010-04-05 11:21:38 -03:00
Roberto Ierusalimschy 11126422d9 option to return GC to normal (incremental, non generational) mode 2010-04-02 12:19:19 -03:00
Roberto Ierusalimschy a8d3aa14fd global table now is only kept in the registry 2010-03-29 14:43:14 -03:00
Roberto Ierusalimschy 064e406f67 no more fenvs! 2010-03-26 17:58:11 -03:00
Roberto Ierusalimschy 5c87f61e6b major collections in generational mode 2010-03-25 16:37:23 -03:00
Roberto Ierusalimschy 74123e9686 draft version of a generational mode for garbage collection. (Not well
tested; no major collections; ...)
2010-03-22 15:28:03 -03:00
Roberto Ierusalimschy 1124cb1247 first step towards _ENV: all chunks have an puvalues _ENV with the
global table
2010-03-08 13:55:52 -03:00
Roberto Ierusalimschy c8ff7de7f0 field 'oldtop' renamed to 'extra', as it can be used for other
purposes
2010-02-09 09:55:37 -02:00
Roberto Ierusalimschy 4f5f2fe367 new function 'luaL_cpcall' 2010-01-21 14:49:21 -02:00
Roberto Ierusalimschy 070d3743a7 "no value" added to array luaT_typenames + occurrences of "userdata"
in that array unified in a single address
2010-01-13 14:18:25 -02:00
Roberto Ierusalimschy cef96b73e1 added casts from int to enumerations to follow C++ rules 2010-01-11 15:38:30 -02:00
Roberto Ierusalimschy f75be1cb28 removed parentheses around some function names in their definitions 2010-01-08 13:16:56 -02:00
Roberto Ierusalimschy cec25167d1 new api_check that 'pcallk' cannot be called inside hooks 2010-01-04 16:17:51 -02:00
Roberto Ierusalimschy cb3f95d516 'lua_cpcall' is deprecated 2009-12-22 14:47:00 -02:00
Roberto Ierusalimschy f84b575cfa no more pseudoindex LUA_GLOBALSINDEX; global table now accessible
through registry
2009-12-22 13:32:50 -02:00
Roberto Ierusalimschy c3a6f3fa1c 'lua_objlen' replaced by 'lua_rawlen', 'lua_len', and 'luaL_len' 2009-12-17 14:20:01 -02:00
Roberto Ierusalimschy 9fbe0690fb base-level C use global table as its environment 2009-12-15 09:25:36 -02:00
Roberto Ierusalimschy ed117bb42a lua_checkstack does not raise memory errors (instead it signals them) 2009-12-08 14:15:43 -02:00
Roberto Ierusalimschy 86312e1a7d lua_objlen calls __len metamethod on tables (if present) 2009-12-07 13:49:47 -02:00
Roberto Ierusalimschy 3e41afcec5 extra api checks for number of returns of C functions and for lua_yield 2009-11-27 13:37:59 -02:00
Roberto Ierusalimschy 7fe405739c renaming: 'lua_upvaladdr' -> 'lua_upvalueid',
'lua_upvaljoin' -> 'lua_upvaluejoin'
2009-11-09 17:10:48 -02:00
Roberto Ierusalimschy 1ce819333d new option 'isrunning' for 'lua_gc' (and 'collectgarbage') 2009-11-09 16:55:17 -02:00
Roberto Ierusalimschy 88eb901f81 registry and global table may be changed through the API without a
write barrier, so GC should visit them in the atomic phase.
2009-11-09 16:29:21 -02:00
Roberto Ierusalimschy 599789a907 better to enclose macros in 'if' bodies with brackets 2009-11-06 15:03:37 -02:00
Roberto Ierusalimschy b7d5f18d71 api functions to manipulate upvalues do not need to check their
arguments (the caller must check them before calling)
2009-11-05 15:26:00 -02:00
Roberto Ierusalimschy 5598b2bc55 new functions to identify and join upvalues 2009-11-05 14:48:31 -02:00
Roberto Ierusalimschy 5bc91c6405 no more one environment per thread: all threads share a single global
environment
2009-10-23 17:12:19 -02:00
Roberto Ierusalimschy a5382b763c new function lua_copy 2009-10-05 13:44:33 -03:00
Roberto Ierusalimschy 5938212748 information about upvalues (where they come from) kept in Proto structure,
instead of sequence of pseudo-opcodes after OP_CLOSURE
2009-09-28 13:32:50 -03:00
Roberto Ierusalimschy a650378822 'cpcall' reimplemented as a predefined value in the registry 2009-09-21 09:09:52 -03:00