Roberto Ierusalimschy
5a9cc57a5e
change in GCObject: instead of being a union, it is now a structure
with the common header of all collectable objects; union is used
only for conversions. (Goal is to be able to check that the cast
'obj2gco' can have a check to ensure that object being converted
is really a collectable object.). This is the first step in the
change.
10 years ago
Roberto Ierusalimschy
0e6229a953
use proper macros to convert 'GCObject' to other objects + better
type cheking in 'set*value' macros
11 years ago
Roberto Ierusalimschy
5ebdd326b6
detail (to avoid warnings of unused variable)
11 years ago
Roberto Ierusalimschy
0aa32fa0cb
small changes in field order in some structs to reduce padding
11 years ago
Roberto Ierusalimschy
8927c14317
removed macro 'luai_checknum' (as NaN trick is not doable now)
11 years ago
Roberto Ierusalimschy
77e7ebca0a
better alignments (for 64-bit arquitectures) for structures 'Table' and
'TString'
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
c86b9da022
userdata can have any Lua value as uservalue
11 years ago
Roberto Ierusalimschy
4ea60463f5
UTF-8 encoding exported as format '%U' in 'lua_pushfstring'
11 years ago
Roberto Ierusalimschy
cac1ebd1e0
detail ('ttisuserdata' renamed to 'ttisfulluserdata')
11 years ago
Roberto Ierusalimschy
d3bbb34c24
back to open hashing for the string table (but with a different
'hnext' field, to strings are still collected like all other
objects)
11 years ago
Roberto Ierusalimschy
af35c7f398
upvalues collected by reference count
11 years ago
Roberto Ierusalimschy
caceeab750
'next' field for tables changed from pointer to integer (for better
alignment on 64-bit machines)
11 years ago
Roberto Ierusalimschy
623e388bb4
double-linked list of all upvalues elliminated and changed to a
traversal of all non-marked threads
11 years ago
Roberto Ierusalimschy
36e8771076
'luaO_str2int' more generic: accepts white spaces around the numeral
and handles signal
12 years ago
Roberto Ierusalimschy
fa6ea831b3
macro 'nvalue' removed (direct conversion from integer to double,
without an intermediate variable, can cause "excessive precision"
12 years ago
Roberto Ierusalimschy
67532d5a10
constant folding and API arithmetic with integers
12 years ago
Roberto Ierusalimschy
00744a2729
'luaO_arith' -> 'luaO_numarith'
12 years ago
Roberto Ierusalimschy
1294b09d8e
first implementation of literal integers (no constant folding yet)
12 years ago
Roberto Ierusalimschy
07f861385e
first steps in the support of integers: basic representation + table indexing + basic API ops (tointeger/pushinteger) + equality + a few extra stuff
12 years ago
Roberto Ierusalimschy
8f8665fffa
'ttypenv' -> 'ttnov'
12 years ago
Roberto Ierusalimschy
cf160abcf9
no more macro 'changenvalue'
12 years ago
Roberto Ierusalimschy
77cbd817d1
better(?) handling of '#define's for IEEE-related tricks + avoid using
IEEE trick for 64-bit integer types (lua_Integer on 64-bit machines)
13 years ago
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.
13 years ago
Roberto Ierusalimschy
a4b96ce9a3
first implementation of long strings
13 years ago
Roberto Ierusalimschy
291f564485
field 'reserved' -> 'extra' (may be used for other purposes too)
13 years ago
Roberto Ierusalimschy
28f8ed9113
new macro 'checktype'
13 years ago
Roberto Ierusalimschy
fd22ccd6d0
object tag keeps variant bits too -> no need for 'isC' field in
Closures + more strick typing for closure variants
13 years ago
Roberto Ierusalimschy
87cf2bf711
extra comments about what fields are optional debug information
13 years ago
Roberto Ierusalimschy
1350a2bcb5
more macros to try to make NaN trick work with other sizes of
IEEE float numbers. (It has not been tested with such different
sizes...)
13 years ago
Roberto Ierusalimschy
87912786af
dead objects are not collectable.
13 years ago
Roberto Ierusalimschy
9e89a55a4f
NILCONSTANT also depends no endianess (with NaN trick)
14 years ago
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)
14 years ago
Roberto Ierusalimschy
35391d9b1a
macro 'NNMARK' (mark for non-number values using the NaN trick)
14 years ago
Roberto Ierusalimschy
99b1b8e918
first version with 'NANTRICK' (packing all Lua values inside a 'double')
14 years ago
Roberto Ierusalimschy
3b44821334
stricter control (using tag variants) over closure kinds (Lua x C)
14 years ago
Roberto Ierusalimschy
0214dab989
yet another macro ('num_')
14 years ago
Roberto Ierusalimschy
9b7dddad7d
no need for two different implementations for equality (one raw and
one with metamethods)
14 years ago
Roberto Ierusalimschy
2a59a999d4
yet another macro abstracting TValue representation
14 years ago
Roberto Ierusalimschy
3cf1729a02
new macro 'lua_longassert' that is equivalent to an assertion without
a stringfication of the condition, to avoid too long string literals
(limited by C90 to ~510 characters)
14 years ago
Roberto Ierusalimschy
25b4e35ee8
new macros abstracting TValue representation (to easy change to
other representations)
14 years ago
Roberto Ierusalimschy
7e1facaa4e
detail in assertion
14 years ago
Roberto Ierusalimschy
ad2531a0ee
more complete (and hopefuly more correct) handling of 'sizeof(char)'
14 years ago
Roberto Ierusalimschy
a958b711f5
cleaner scheme of bits for variant types (light C functions) and
collectable types
14 years ago
Roberto Ierusalimschy
83abbac946
all names used internally by macros end with '_'
14 years ago
Roberto Ierusalimschy
98816d0ce5
small problems with 'luaone.c'
14 years ago
Roberto Ierusalimschy
b63b0928cf
prototype for 'luaO_ceillog2' was different from definition
14 years ago
Roberto Ierusalimschy
1aead7f553
'hexafloat' moved to 'lobject.c' (hexa conversion needs it too)
14 years ago