Roberto Ierusalimschy
|
41964648ee
|
long strings are created directly in final position when possible
(instead of using an auxiliar buffer to first create the string
and then allocate the final string and copy result there)
|
2015-09-08 12:41:05 -03:00 |
|
Roberto Ierusalimschy
|
8f25d08637
|
'invalidateTMcache' not needed in all 'settable' uses
|
2015-08-03 17:40:26 -03:00 |
|
Roberto Ierusalimschy
|
3b795541c4
|
fast track for 'settable'
|
2015-08-03 16:50:49 -03:00 |
|
Roberto Ierusalimschy
|
e247c3ada3
|
implementation of fast track for gettable operations
|
2015-07-20 15:24:50 -03:00 |
|
Roberto Ierusalimschy
|
319ccfefbc
|
computations in numerical for loop must avoid overflows too
|
2015-07-04 13:31:03 -03:00 |
|
Roberto Ierusalimschy
|
f01c12c891
|
detail (cast to avoid mixing types in conditional expression)
|
2015-06-25 11:00:01 -03:00 |
|
Roberto Ierusalimschy
|
a1415c0d72
|
bug in order NaN x int (tests must ensure that NaN does not get
converted to integer)
|
2015-06-09 12:53:35 -03:00 |
|
Roberto Ierusalimschy
|
ed1fe28bb8
|
When comparing integers with floats, use float as common type when
possible (i.e., when integer fits in a float without losses); seems
to be more efficient in architectures with native support for used
Lua numbers
|
2015-06-02 16:11:24 -03:00 |
|
Roberto Ierusalimschy
|
d39bb51faa
|
bug: interpreter cannot pop activation frame before calling return
hook (as it may want to access local variables active by the end
of the function)
|
2015-05-22 14:48:19 -03:00 |
|
Roberto Ierusalimschy
|
6dc20ff293
|
'l <= r' for numbers has its own function, instead of using
'not (r < l)' (seems to be slightly more efficient)
|
2015-05-20 15:19:11 -03:00 |
|
Roberto Ierusalimschy
|
0ec12c1bd1
|
new semantics for numerical order (following math regardless
representation)
|
2015-05-20 13:22:55 -03:00 |
|
Roberto Ierusalimschy
|
04ba6ea83b
|
new semantics for equality int-float
|
2015-04-29 15:27:16 -03:00 |
|
Roberto Ierusalimschy
|
ae76c39712
|
Bug: suspended '__le' metamethod can give wrong result
|
2015-04-10 14:56:25 -03:00 |
|
Roberto Ierusalimschy
|
abb2f5511d
|
detail ('b + base' -> 'base + b' to follow all other similar uses)
|
2015-03-30 12:45:01 -03:00 |
|
Roberto Ierusalimschy
|
4ba0cb4580
|
always use macros to operate on lua_Numbers
|
2015-03-07 16:30:16 -03:00 |
|
Roberto Ierusalimschy
|
6408bc0b7f
|
new macros 'chgfltvalue'/'chgivalue' (numerical for loop does
not need to set the type of its internal variable at each iteration)
|
2015-03-02 13:04:52 -03:00 |
|
Roberto Ierusalimschy
|
81245b1ad5
|
'numisinteger' (for table keys) replaced by 'luaV_tointeger' (old
'tointeger_aux'), which can do the same job.
|
2015-02-20 12:27:53 -02:00 |
|
Roberto Ierusalimschy
|
c8d6cb0136
|
macros 'luai_num*' (for float arithmetic operations) moved to
llimits.h.
|
2015-02-05 15:15:33 -02:00 |
|
Roberto Ierusalimschy
|
7e2015a46d
|
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
|
2015-01-16 14:54:37 -02:00 |
|
Roberto Ierusalimschy
|
50e2eb8954
|
change in macro 'vmcase', avoding code inside it. (Code inside the
macro harms tools such as debuggers.)
|
2014-12-27 18:30:38 -02:00 |
|
Roberto Ierusalimschy
|
2b83711fba
|
new macro 'nvalue' (to convert an object to a float when we know
object is a number)
|
2014-12-19 11:36:32 -02:00 |
|
Roberto Ierusalimschy
|
049cf14cf9
|
'x//y' extended to floats + more comments about module and floor
division operations
|
2014-11-21 10:15:00 -02:00 |
|
Roberto Ierusalimschy
|
5d628519d3
|
simpler definition for 'luaV_tonumber_'
|
2014-11-19 13:05:15 -02:00 |
|
Roberto Ierusalimschy
|
bde14c3adc
|
macro to change method of conversion from float to integer (make it
use floor intead of requiring an exact integral value)
|
2014-11-03 18:07:47 -02:00 |
|
Roberto Ierusalimschy
|
28fdbcf393
|
added include for 'lprefix.h', for stuff that must be added before
any other header file
|
2014-11-02 17:19:04 -02:00 |
|
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
2014-10-25 09:50:46 -02:00 |
|
Roberto Ierusalimschy
|
463edee2fd
|
'lua_numtointeger' -> 'lua_numbertointeger'
|
2014-10-24 09:42:06 -02:00 |
|
Roberto Ierusalimschy
|
f97c64d7bf
|
macros 'LUA_QL'/'LUA_QL' deprecated
|
2014-10-17 13:28:21 -03:00 |
|
Roberto Ierusalimschy
|
3a15c7ce43
|
size for array part of a table ('sizearray') changed from 'int' to
'unsigned int', which allows twice as many elements in the array part
|
2014-09-04 15:15:29 -03:00 |
|
Roberto Ierusalimschy
|
d861706620
|
new macro 'cvt2num' to better control whether strings are convertible
to numbers
|
2014-07-30 11:42:44 -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
|
17ee57f8e0
|
'iswhite' and related macros now can work directly on any object
(no need to convert to 'GCObject')
|
2014-07-21 13:02:10 -03:00 |
|
Roberto Ierusalimschy
|
ca41b43f53
|
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
|
2014-07-18 10:36:14 -03:00 |
|
Roberto Ierusalimschy
|
8bb272a3e3
|
new conversion float->integer: conversion is valid only when
float has an exact representation as an integer
|
2014-07-17 09:30:53 -03:00 |
|
Roberto Ierusalimschy
|
b9dcf9974d
|
detail (typos in comments)
|
2014-06-30 16:48:08 -03:00 |
|
Roberto Ierusalimschy
|
89b56e7d84
|
more precision between closure types ('LClosure' x 'CClosure')
|
2014-06-19 15:27:20 -03:00 |
|
Roberto Ierusalimschy
|
1a3656e56e
|
more relaxed rules for __eq metamethod (more similar to other
operators)
|
2014-06-10 15:53:18 -03:00 |
|
Roberto Ierusalimschy
|
c98f195eb9
|
function 'luaV_numtointeger' changed to a global macro
'lua_numtointeger' (tricky, small, and useful in several places)
|
2014-05-26 14:10:22 -03:00 |
|
Roberto Ierusalimschy
|
36715ab7c1
|
detail (comment)
|
2014-05-23 15:32:21 -03:00 |
|
Roberto Ierusalimschy
|
8a0acf0898
|
comments
|
2014-05-20 11:12:59 -03:00 |
|
Roberto Ierusalimschy
|
3e977f02ac
|
added a few comments
|
2014-05-15 17:08:32 -03:00 |
|
Roberto Ierusalimschy
|
f8daddba50
|
added a compat option (although it will be off by default) to
the addition of '.0' to float->string conversions
|
2014-05-14 16:47:11 -03:00 |
|
Roberto Ierusalimschy
|
45c430eac0
|
addition of '.0' to float representation done by the kernel
|
2014-05-12 18:44:17 -03:00 |
|
Roberto Ierusalimschy
|
27d9219cf3
|
no more integer exponentiation
|
2014-05-12 18:22:05 -03:00 |
|
Roberto Ierusalimschy
|
12bd01c567
|
added comments to several functions
|
2014-05-12 16:13:32 -03:00 |
|
Roberto Ierusalimschy
|
06dc893f88
|
in 'for' loops, make the limit an integer whenever initial value and
step are integers
|
2014-05-09 11:20:52 -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
|
ddff6ecf30
|
function 'limittointeger' no needed (now that 'tointeger_aux' handles
integers too)
|
2014-04-30 16:29:51 -03:00 |
|
Roberto Ierusalimschy
|
1a6ef098b0
|
'luaO_str2d' + 'luaO_str2int' replaced by 'luaO_str2num' plus proper
conversion from strings to integers
|
2014-04-30 13:50:16 -03:00 |
|
Roberto Ierusalimschy
|
b123a88673
|
merge of common parts from 'limittointeger' and 'luaV_tointeger_'
|
2014-04-29 17:06:05 -03:00 |
|
Roberto Ierusalimschy
|
ffa43df3cd
|
'setnvalue' -> 'setfltvalue' (for consitency with 'fltvalue')
|
2014-04-29 15:14:16 -03:00 |
|
Roberto Ierusalimschy
|
9c4398de8f
|
'for' loop tries to convert limit to integer when initial value and
step are integers
|
2014-04-29 15:11:57 -03:00 |
|
Roberto Ierusalimschy
|
e98ba351ce
|
n^-m gives float result (instead of error)
|
2014-04-27 11:41:11 -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
|
2771050dfa
|
'MIN/MAX_INTEGER' replaced by 'LUA_MIN/MAXINTEGER'
|
2014-04-11 16:02:16 -03:00 |
|
Roberto Ierusalimschy
|
a8aede68c7
|
new definition for 'luai_nummod' (using 'fmod')
|
2014-04-09 14:05:11 -03:00 |
|
Roberto Ierusalimschy
|
c7859a046d
|
using 'volatile' in 'tofloat' to ensure result has the same precision
(lua_Number) of other computations
|
2014-04-08 11:28:04 -03:00 |
|
Roberto Ierusalimschy
|
7d514af0bc
|
bug (in work version): comparisons should not try to convert
strings to numbers
|
2014-04-02 13:54:20 -03:00 |
|
Roberto Ierusalimschy
|
3d1c6730da
|
detail ('1U' -> '1u', like other unsigned constants in the code)
|
2014-03-31 16:18:24 -03:00 |
|
Roberto Ierusalimschy
|
ea69f17d98
|
macro 'tostring' is used only by 'luaV_concat'
|
2014-03-31 15:37:52 -03:00 |
|
Roberto Ierusalimschy
|
114d10cbc5
|
detail (comment)
|
2014-03-15 09:29:48 -03:00 |
|
Roberto Ierusalimschy
|
9f3f5b6f41
|
details
|
2014-03-14 13:54:08 -03:00 |
|
Roberto Ierusalimschy
|
cd12410195
|
new macro 'cast_void'
|
2014-03-07 13:19:00 -03:00 |
|
Roberto Ierusalimschy
|
5ff1c18a71
|
back with 'L' for macros 'luai_num*', but now with a new macro
'luai_numinvalidop' to protect constant folding
|
2014-03-06 13:15:18 -03:00 |
|
Roberto Ierusalimschy
|
d438e1379d
|
insertion of ".0" in floats with integer values done by "luaL_tolstring",
not by the core
|
2014-02-05 17:14:53 -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
|
0a850e641d
|
larger limit + better error messages for loop detection in inheritance
|
2014-01-22 18:02:04 -02:00 |
|
Roberto Ierusalimschy
|
1ea2d20f74
|
first implementation of '<<', '>>', and '~' (bitwise not)
|
2013-12-30 18:47:58 -02:00 |
|
Roberto Ierusalimschy
|
c0edab0f6d
|
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
|
2013-12-18 12:12:03 -02:00 |
|
Roberto Ierusalimschy
|
a8f8c7fd80
|
integer exponentiation with negative exponent is invalid
|
2013-12-16 12:30:22 -02:00 |
|
Roberto Ierusalimschy
|
26629d0af1
|
details (a few casts moved from macro invocation to macro definition)
|
2013-08-29 10:49:57 -03:00 |
|
Roberto Ierusalimschy
|
af35c7f398
|
upvalues collected by reference count
|
2013-08-27 15:53:35 -03:00 |
|
Roberto Ierusalimschy
|
9eff921f8f
|
"barrier" for link prototype->cache changed to be consistent with
GC behavior (link is cleared to preserve invariant)
|
2013-08-19 11:18:43 -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
|
2f8c51a552
|
use unsigneds for unary minus, too
|
2013-07-10 14:15:12 -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
|
130c0e40e0
|
new constant 'MAX_SIZE', distinct from 'MAX_SIZET', for sizes visible
from Lua; these must fit in a lua_Integer
|
2013-06-19 11:27:00 -03:00 |
|
Roberto Ierusalimschy
|
318575627f
|
avoid adding '.0' to "numbers" like "nan" and "inf"
|
2013-06-07 16:02:05 -03:00 |
|
Roberto Ierusalimschy
|
6fb0b11350
|
string contatenation handles conversion of integers to strings +
floats always format as floats (with decimal dot or exponent)
|
2013-06-04 16:36:42 -03:00 |
|
Roberto Ierusalimschy
|
d630daca1a
|
"legal" way to convert a float to an integer in C
|
2013-05-27 09:43:37 -03:00 |
|
Roberto Ierusalimschy
|
8c883cb4e8
|
'objlen' can return integers
|
2013-05-26 11:47:51 -03:00 |
|
Roberto Ierusalimschy
|
b22a4280c6
|
macro 'nvalue' removed + cast to void added to avoid warnings
with 'clang'
|
2013-05-06 14:17:09 -03:00 |
|
Roberto Ierusalimschy
|
6920a7f2e3
|
new macro 'intop' (to perform integer arithmetic on unsigned types)
|
2013-05-02 09:31:26 -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
|
f79584faca
|
detail
|
2013-04-26 13:06:53 -03:00 |
|
Roberto Ierusalimschy
|
4abe99dc34
|
new interface for 'tonumber'
|
2013-04-26 13:03:50 -03:00 |
|
Roberto Ierusalimschy
|
a2f5c28a80
|
new operation '//' (integer division)
|
2013-04-26 10:08:29 -03:00 |
|
Roberto Ierusalimschy
|
bb1851ce98
|
'for' loop uses integers when possible
|
2013-04-25 16:50:02 -03:00 |
|
Roberto Ierusalimschy
|
e381c582de
|
integer handling for order comparisons, power, and modulo operations
|
2013-04-25 16:12:41 -03:00 |
|
Roberto Ierusalimschy
|
9600c60df3
|
functions 'get_equalTM' and 'call_orderTM' moved to other files
to make 'lvm.c' smaller
|
2013-04-25 13:07:52 -03:00 |
|
Roberto Ierusalimschy
|
32bf6c9b27
|
functions 'traceexec', 'callTM', and 'call_binTM' moved to other
files to make 'lvm.c' a little smaller
|
2013-04-25 12:59:42 -03:00 |
|
Roberto Ierusalimschy
|
d4f0c4435d
|
a few more operations supporting integers (minus, umin, mult)
|
2013-04-16 15:43:05 -03:00 |
|
Roberto Ierusalimschy
|
07f861385e
|
first steps in the support of integers: basic representation + table indexing + basic API ops (tointeger/pushinteger) + equality + a few extra stuff
|
2013-04-15 12:44:46 -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
|
a3e1c40d6d
|
remove of unecessary luaD_checkstack. (In some cases, C should
ensure stack space; in others, Lua can use the extra slots for
temporary values.)
|
2012-08-16 14:34:28 -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
|
5654763797
|
macro 'checkGC' takes care of setting 'top' to limit stack live values
|
2012-05-14 14:50:49 -03:00 |
|
Roberto Ierusalimschy
|
3cadc37f47
|
no more 'Proto' objects on the stack. Protos are anchored on outer
Protos or on a Closure, which must be created before the Proto.
|
2012-05-08 10:53:33 -03:00 |
|
Roberto Ierusalimschy
|
a4b96ce9a3
|
first implementation of long strings
|
2012-01-25 19:05:40 -02:00 |
|
Roberto Ierusalimschy
|
9f1a8dbdd3
|
'eqstr' -> 'luaS_eqstr'
|
2012-01-23 21:05:18 -02:00 |
|
Roberto Ierusalimschy
|
c82087b8dd
|
cast from 'bool' to 'int' (for C++)
|
2011-12-07 12:43:55 -02:00 |
|
Roberto Ierusalimschy
|
8c62bde36f
|
comment
|
2011-11-29 13:54:38 -02:00 |
|
Roberto Ierusalimschy
|
8119374e74
|
avoid warnings of unreacheable 'break's
|
2011-11-28 15:25:16 -02:00 |
|
Roberto Ierusalimschy
|
217e67cb22
|
new type 'l_noret' for function that do not return
|
2011-10-07 17:45:19 -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
|
f62565abea
|
avoid warnings with -Wstrict-overflow
|
2011-06-09 15:24:22 -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
|
81952e6884
|
avoid using expression as argument to unsafe macro 'l_isfalse'
|
2011-05-05 13:16:33 -03:00 |
|
Roberto Ierusalimschy
|
4758113043
|
change in opcode OP_LOADNIL: B is used as a counter instead of a
register. (Avoids an assignment to R(B), not present in any other
instruction.)
|
2011-04-19 13:22:13 -03:00 |
|
Roberto Ierusalimschy
|
05ca63642b
|
added macro for code checking
|
2011-04-18 16:48:53 -03:00 |
|
Roberto Ierusalimschy
|
427ee519db
|
new instruction OP_LOADKX (to replace OP_LOADK with extra argument)
|
2011-04-07 15:14:12 -03:00 |
|
Roberto Ierusalimschy
|
5286650894
|
new macro 'ttisequal'
|
2011-04-05 15:32:06 -03:00 |
|
Roberto Ierusalimschy
|
0fb1644c60
|
2nd operand for unary tag methods does not need to be 'nil'
|
2011-04-05 11:26:23 -03:00 |
|
Roberto Ierusalimschy
|
e7a9c45a48
|
trying to avoid assumption that sizeof(char)==1
|
2011-02-07 17:15:24 -02:00 |
|
Roberto Ierusalimschy
|
f8d677f94c
|
no more 'OP_CLOSE' instructions (use jumps to close upvalues)
|
2011-02-07 10:28:27 -02:00 |
|
Roberto Ierusalimschy
|
06c7efb4a9
|
avoid extra increment to 'savedpc' when jumping
|
2011-02-01 16:32:55 -02:00 |
|
Roberto Ierusalimschy
|
dd547c55c8
|
new scheme to close upvalues in 'break'; jump instructions may
do the close, avoiding the need for a OP_CLOSE instruction
|
2011-02-01 16:03:10 -02:00 |
|
Roberto Ierusalimschy
|
c9af0768fc
|
GC does not mark dead registers inside activation record
|
2010-12-17 10:05:37 -02:00 |
|
Roberto Ierusalimschy
|
ccc4fc9cf0
|
detection of erroneous numeric strings with \0 (such as "1\0")
|
2010-12-06 19:08:36 -02:00 |
|
Roberto Ierusalimschy
|
fdd5f2f7a3
|
comment typos
|
2010-10-29 15:52:46 -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
|
a71c5f6f53
|
typo in comments
|
2010-06-30 11:11:17 -03:00 |
|
Roberto Ierusalimschy
|
fabe4ec487
|
better barrier for prototypes
|
2010-06-07 13:55:34 -03:00 |
|
Roberto Ierusalimschy
|
575074fd85
|
Lua closures are cached for reuse
|
2010-06-04 10:25:10 -03:00 |
|
Roberto Ierusalimschy
|
cf531912f2
|
one more macro (mvdispatch) to easy experiments with alternative
dispatch methods
|
2010-05-13 16:53:05 -03:00 |
|
Roberto Ierusalimschy
|
b6e9fcbd70
|
use of macro ('vmcase') to format all cases in main switch of
'luaV_execute' (to facilitate experiences with direct threading)
|
2010-05-12 17:40:35 -03:00 |
|
Roberto Ierusalimschy
|
8554baeacf
|
small changes in 'luaV_execute' to make cases more regularly formatted
|
2010-05-12 17:31:33 -03:00 |
|
Roberto Ierusalimschy
|
237f755dca
|
typos in comments
|
2010-05-05 15:49:56 -03:00 |
|
Roberto Ierusalimschy
|
fde866e303
|
details (comments)
|
2010-05-04 14:25:19 -03:00 |
|
Roberto Ierusalimschy
|
49ca1f7083
|
allows thread switches (when/if there are thread switches) in the same
places that finalizers can run (so they should be safe...)
|
2010-04-19 14:58:46 -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
|
575befc394
|
comparsion tag methods follow the same rule as other binary TMs
|
2010-04-18 10:15:11 -03:00 |
|
Roberto Ierusalimschy
|
b7be05ad27
|
invalid instructions "cannot" happen
|
2010-04-15 16:43:43 -03:00 |
|
Roberto Ierusalimschy
|
7dfa4cd655
|
first implementation of light C functions
|
2010-04-14 12:13:48 -03:00 |
|
Roberto Ierusalimschy
|
d394d5536a
|
new macro 'eqstr'
|
2010-04-05 13:26:37 -03:00 |
|
Roberto Ierusalimschy
|
a08fc34ee4
|
avoid using 'luaS_new' when can use 'luaS_newlstr'
|
2010-04-02 12:39:07 -03:00 |
|
Roberto Ierusalimschy
|
9eb832de54
|
work related to hooks moved from 'luaV_execute' to 'traceexec'
|
2010-03-29 17:45:49 -03:00 |
|
Roberto Ierusalimschy
|
064e406f67
|
no more fenvs!
|
2010-03-26 17:58:11 -03:00 |
|
Roberto Ierusalimschy
|
25c557ec63
|
first version of _ENV; no more global variables
|
2010-03-12 16:14:06 -03:00 |
|
Roberto Ierusalimschy
|
347f0c33d1
|
avoid 'continue' unless necessary
|
2010-02-27 18:16:24 -03:00 |
|
Roberto Ierusalimschy
|
0fe2576a39
|
new instructions to optimize indexing on upvalues
|
2010-02-26 17:40:29 -03:00 |
|
Roberto Ierusalimschy
|
36ab1ee10c
|
__unm metamethod gets nil as its 2nd parameter
|
2010-01-15 14:23:58 -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
|
b0f2b288a6
|
new scheme for debug info about tail calls: no more 'fake' stack entries,
but stack entry knows whether it was tail called
|
2009-11-25 13:27:51 -02:00 |
|
Roberto Ierusalimschy
|
77077b39d5
|
comment explaining OP_VARARG was wrong (and corresponding code was not
very clear)
|
2009-10-28 10:20:07 -02:00 |
|
Roberto Ierusalimschy
|
0ac3d07ea6
|
first implementation of lexical environments
|
2009-09-30 12:38:37 -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
|
fcc46467fa
|
limit of constants per function changed to 2^26 using extra arguments
to opcodes LOADK, GETGLOBAL, and SETGLOBAL
|
2009-09-23 17:33:05 -03:00 |
|
Roberto Ierusalimschy
|
3135a6bbab
|
luaH_[gs]etnum renamed to luaH_[gs]etint (as they only accept integers,
not generic numbers)
|
2009-08-07 13:17:41 -03:00 |
|
Roberto Ierusalimschy
|
11d7ba79f2
|
tail calls do not need to move whole new frame down, only its slice
up to last parameter (the rest has not been used yet)
|
2009-07-15 15:38:16 -03:00 |
|
Roberto Ierusalimschy
|
afb3f7e754
|
bug: 'luaV_settable' may invalidate a reference to a table and try
to reuse it.
|
2009-07-01 17:31:25 -03:00 |
|
Roberto Ierusalimschy
|
2bdd194f43
|
exports luaV_arith to be used by lua_arith + uses 'luaO_arith' to
perform basic arith. operations
|
2009-06-17 14:50:09 -03:00 |
|
Roberto Ierusalimschy
|
77fd93188e
|
'lessequal' renamed 'luaV_lessequal' and exported to be used by
'lua_compare'
|
2009-06-17 13:17:14 -03:00 |
|
Roberto Ierusalimschy
|
2258ec6bc9
|
'getline' renamed to 'getfuncline' (to avoid problems with POSIX)
|
2009-06-10 13:57:53 -03:00 |
|
Roberto Ierusalimschy
|
9423e22aa3
|
no more L->base + ci->base only for Lua functions (C functions may use
'func')
|
2009-06-01 16:09:26 -03:00 |
|
Roberto Ierusalimschy
|
57f8414de1
|
small bug in 'luaV_concat' (L->top was left incorrect in some cases)
|
2009-05-27 14:11:27 -03:00 |
|
Roberto Ierusalimschy
|
eea6d10866
|
details (use ci->base instead of L->base when possible)
|
2009-05-22 12:19:54 -03:00 |
|
Roberto Ierusalimschy
|
d7bc346d7a
|
no more code checking
|
2009-04-30 14:42:21 -03:00 |
|
Roberto Ierusalimschy
|
d3037d97ec
|
several small improvements based on 'ci' being fixed now (including
erasing savedpc from lua_State)
|
2009-04-17 19:00:01 -03:00 |
|
Roberto Ierusalimschy
|
4f88418170
|
'CallInfo' stack implemented as double-linked list instead of an array
|
2009-04-17 11:28:06 -03:00 |
|
Roberto Ierusalimschy
|
ba484b9eb1
|
yielding across lua_call (first version)
|
2009-03-10 14:14:37 -03:00 |
|
Roberto Ierusalimschy
|
1817dfc301
|
initial separation, in CallInfo, of what is relevant only to Lua
functions or only to C functions
|
2009-03-04 10:32:29 -03:00 |
|
Roberto Ierusalimschy
|
facfcd497f
|
detail
|
2009-03-02 13:34:23 -03:00 |
|
Roberto Ierusalimschy
|
2b590aea40
|
no more '__len' metamethod for strings
|
2009-02-16 17:09:28 -03:00 |
|
Roberto Ierusalimschy
|
b472098493
|
concat TM can yield
|
2008-11-06 10:43:51 -02:00 |
|
Roberto Ierusalimschy
|
84b3daebbd
|
generic for coded as two dedicated instructions to simplify resumption
|
2008-10-30 13:39:30 -02:00 |
|
Roberto Ierusalimschy
|
f6978173e0
|
yields accross metamethods and for iterators (except for __concat)
|
2008-10-28 14:53:16 -02:00 |
|
Roberto Ierusalimschy
|
4376c9bc5f
|
more specific test to avoid calling luaF_close when function returns
|
2008-09-09 10:53:02 -03:00 |
|
Roberto Ierusalimschy
|
f94cd2201c
|
better control of call status through CallInfo
|
2008-08-26 10:27:42 -03:00 |
|
Roberto Ierusalimschy
|
fdbb243ff9
|
first steps towards yielding through longjump
|
2008-08-13 14:02:42 -03:00 |
|
Roberto Ierusalimschy
|
a4d3080fe3
|
SETLIST extra argument now is an "instruction" (OP_EXTRAARG)
|
2008-04-02 14:38:54 -03:00 |
|
Roberto Ierusalimschy
|
fe0838cd1c
|
tables and strings respect __len metamethod
|
2007-09-10 14:59:32 -03:00 |
|
Roberto Ierusalimschy
|
6c042e17b1
|
avoid boolean equality (tricky for some compilers)
|
2007-06-19 16:48:15 -03:00 |
|
Roberto Ierusalimschy
|
1a455acc81
|
two small bugs: some metamethods do not accept callable non-function
objects + __concat converts numbers to strings before calling metamethod
|
2007-03-26 12:56:23 -03:00 |
|
Roberto Ierusalimschy
|
08f902cf49
|
better documentation for auxiliary functions (that should be called only
through specific macros).
|
2007-02-09 11:04:52 -02:00 |
|
Roberto Ierusalimschy
|
569a326931
|
small optimization for ""..x
|
2006-09-19 11:06:45 -03:00 |
|
Roberto Ierusalimschy
|
d1ef7e0ec6
|
avoid local "pc" in interpreter loop (tricky optimization with no real gain)
|
2006-09-19 10:57:50 -03:00 |
|
Roberto Ierusalimschy
|
a7c9e45c64
|
avoid trailing white spaces
|
2006-09-11 11:07:24 -03:00 |
|
Roberto Ierusalimschy
|
dfe2f1eeff
|
macros luai_num* take a state L (when available) as argument, to allow
them to generate errors (and other facilities)
|
2006-08-07 16:14:30 -03:00 |
|
Roberto Ierusalimschy
|
fa0c03aaa6
|
details
|
2006-07-14 13:22:24 -03:00 |
|
Roberto Ierusalimschy
|
3ca9af51a4
|
emergency garbage collector (core forces a GC when allocation fails)
|
2006-07-11 12:53:29 -03:00 |
|
Roberto Ierusalimschy
|
e2dc5f5d15
|
extra assertion
|
2006-06-05 12:58:59 -03:00 |
|
Roberto Ierusalimschy
|
9e6e43984d
|
details
|
2006-01-23 17:51:43 -02:00 |
|
Roberto Ierusalimschy
|
dd1221582b
|
details
|
2006-01-10 10:50:00 -02:00 |
|
Roberto Ierusalimschy
|
c505f341d6
|
small changes in casts
|
2005-12-22 14:19:56 -02:00 |
|
Roberto Ierusalimschy
|
a160266c3d
|
details
|
2005-11-01 14:08:45 -02:00 |
|
Roberto Ierusalimschy
|
8e48ebb638
|
no more L in numer-operator macros (some functions that use those macros
have no access to L)
|
2005-10-24 15:37:52 -02:00 |
|
Roberto Ierusalimschy
|
cd12ab2597
|
details (more uniform coding)
|
2005-10-13 09:21:26 -03:00 |
|
Roberto Ierusalimschy
|
a77413acd0
|
include of math.h depends on luaconf
|
2005-10-03 11:01:26 -03:00 |
|
Roberto Ierusalimschy
|
6dd3a73ca2
|
detail (macro evaluates twice its arguments)
|
2005-09-09 15:23:35 -03:00 |
|
Roberto Ierusalimschy
|
3b19af44b0
|
new method to handle tests without values (negative values)
|
2005-08-29 17:49:21 -03:00 |
|
Roberto Ierusalimschy
|
98296f6b45
|
some bugs related to stack reallocation
|
2005-08-24 13:15:49 -03:00 |
|
Roberto Ierusalimschy
|
6fcd334ca0
|
small improvements
|
2005-08-22 15:54:49 -03:00 |
|