Roberto Ierusalimschy
1e0c73d5b6
Changes in the validation of UTF-8
All UTF-8 encoding functionality (including the escape
sequence '\u') accepts all values from the original UTF-8
specification (with sequences of up to six bytes).
By default, the decoding functions in the UTF-8 library do not
accept invalid Unicode code points, such as surrogates. A new
parameter 'nonstrict' makes them accept all code points up to
(2^31)-1, as in the original UTF-8 specification.
6 years ago
Roberto Ierusalimschy
5e76a4fd31
New macros for arithmetic/bitwise operations in 'luaV_execute'
The repetitive code of the arithmetic and bitwise operators in
the main iterpreter loop was moved to appropriate macros.
(As a detail, the function 'luaV_div' was renamed 'luaV_idiv',
as it does an "integer division" (floor division).
6 years ago
Roberto Ierusalimschy
5382a22e0e
Corrections in the implementation of '%' for floats.
The multiplication (m*b) used to test whether 'm' is non-zero and
'm' and 'b' have different signs can underflow for very small numbers,
giving a wrong result. The use of explicit comparisons solves this
problem. This commit also adds several new tests for '%' (both for
floats and for integers) to exercise more corner cases, such as
very large and very small values.
6 years ago
Roberto Ierusalimschy
f99509581e
Removed extra information from RCS keyword strings
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
6 years ago
Roberto Ierusalimschy
505fc91222
no more 'luaO_nilobject' to avoid comparison of global variable addresses
(now uses static variables)
7 years ago
Roberto Ierusalimschy
deb807837c
'luaO_pushvfstring' does not need to reallocate stack
(less error cases in the API)
7 years ago
Roberto Ierusalimschy
34b00c16e2
removed compatibility code with older versions
7 years ago
Roberto Ierusalimschy
e2b15aa21d
janitor work on casts
7 years ago
Roberto Ierusalimschy
a9295a2b8e
typos in comments
7 years ago
Roberto Ierusalimschy
599f1742c6
detail (typo in comments)
7 years ago
Roberto Ierusalimschy
e4e5aa85a2
detail ('signal' -> 'sign' in comments)
7 years ago
Roberto Ierusalimschy
26679ea35b
new function 'luaV_flttointeger' to convert floats to integers (without
string coercions) + string operands to bitwise operations handled
by string metamethods
7 years ago
Roberto Ierusalimschy
911f1e3e7f
raw operation should not convert strings to numbers
7 years ago
Roberto Ierusalimschy
4dff277255
coercion string->number in arithmetic operations moved to string
library
7 years ago
Roberto Ierusalimschy
f96497397a
new type 'StackValue' for stack elements
(we may want to put extra info there in the future)
7 years ago
Roberto Ierusalimschy
a9dbc2d641
assert removed in 'luaO_arith'
(nobody calls it with L==NULL)
8 years ago
Roberto Ierusalimschy
a45945b6d5
new macro 'lua_pointer2str' to encapsulate use of 'l_sprintf' inside
the kernel
8 years ago
Roberto Ierusalimschy
2a235312f0
detail (removing spaces at end of lines)
8 years ago
Roberto Ierusalimschy
09c9fa36ea
small corrections for C++ compliance
8 years ago
Roberto Ierusalimschy
10b0b09555
do not convert decimal constants with overflow to integers.
(Therefore, they will be converted as floats)
9 years ago
Roberto Ierusalimschy
ed110f66c5
'luaO_str2num' (and, therefore, 'lua_stringtonumber', 'number',
and coercions) accepts both the locale point and a dot as its
radix character
9 years ago
Roberto Ierusalimschy
2d1d57bc18
comments
9 years ago
Roberto Ierusalimschy
8c1fb91802
macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used
in critical time pathes, can save a few bytes without the macro)
9 years ago
Roberto Ierusalimschy
332a06bbd1
'luaO_pushvfstring' now uses 'incr_top' to increment top.
9 years ago
Roberto Ierusalimschy
e89763e964
simpler code for 'luaO_fb2int'
10 years ago
Roberto Ierusalimschy
19eb6ae580
using 'snprintf' in C99 (both for documentation of buffer sizes
and some complains from tools)
10 years ago
Roberto Ierusalimschy
69b5f7a410
some details in 'luaO_int2fb' + more consistent use of the locale
decimal point
10 years ago
Roberto Ierusalimschy
e723c75c02
details (avoid 'lint' warnings)
10 years ago
Roberto Ierusalimschy
c8d6cb0136
macros 'luai_num*' (for float arithmetic operations) moved to
llimits.h.
10 years ago
Roberto Ierusalimschy
fb6796ba06
removed useless initializations
10 years ago
Roberto Ierusalimschy
5fbd40dbe5
'x//y' extended to floats
10 years ago
Roberto Ierusalimschy
81c39a5244
no need to cast '*s' to unsigned char when we know it is a digit +
no need to call 'luaO_hexavalue' for decimal digits
10 years ago
Roberto Ierusalimschy
28fdbcf393
added include for 'lprefix.h', for stuff that must be added before
any other header file
10 years ago
Roberto Ierusalimschy
59fbbf0a65
small simplifications in code for 'lua_strx2number'
10 years ago
Roberto Ierusalimschy
4870194380
small reorganization of tests around LUA_USE_C99
10 years ago
Roberto Ierusalimschy
bdf566a8a3
`name' in comments changed to 'name'
10 years ago
Roberto Ierusalimschy
ff9ca88aa6
added some casts to avoid warnings in some compilers
10 years ago
Roberto Ierusalimschy
f97c64d7bf
macros 'LUA_QL'/'LUA_QL' deprecated
10 years ago
Roberto Ierusalimschy
56d4537879
'$c' in 'lua_pushfstring' prints non-printable characters with
their codes
10 years ago
Roberto Ierusalimschy
c5cae9362c
added two casts to avoid warnings in VS
10 years ago
Roberto Ierusalimschy
34b6664dcb
better to use 'long' to represent UTF-8 code points
10 years ago
Roberto Ierusalimschy
f5c690b684
details in comments
10 years ago
Roberto Ierusalimschy
34ac039fb8
new macro 'cvt2str' to better control whether numbers are convertible
to strings
10 years ago
Roberto Ierusalimschy
b9dcf9974d
detail (typos in comments)
11 years ago
Roberto Ierusalimschy
45c430eac0
addition of '.0' to float representation done by the kernel
11 years ago
Roberto Ierusalimschy
27d9219cf3
no more integer exponentiation
11 years ago
Roberto Ierusalimschy
c549d4fe64
'lua_strtonum' (and 'luaO_str2num') now return string size, instead of
receiving it
11 years ago
Roberto Ierusalimschy
5388aa9fc0
'luaO_str2d' + 'luaO_str2int' replaced by 'luaO_str2num' (which converts
to float or integer according to the string syntax)
11 years ago
Roberto Ierusalimschy
ffa43df3cd
'setnvalue' -> 'setfltvalue' (for consitency with 'fltvalue')
11 years ago
Roberto Ierusalimschy
e98ba351ce
n^-m gives float result (instead of error)
11 years ago