Roberto Ierusalimschy
26629d0af1
details (a few casts moved from macro invocation to macro definition)
11 years ago
Roberto Ierusalimschy
b5e75fde4e
bug: local collection must clear rest of stack
11 years ago
Roberto Ierusalimschy
9a871dd3db
tables and userdata all go to local list, too
11 years ago
Roberto Ierusalimschy
90972ff136
LOCALBLACK changed to LOCALMARK and used also to control whether object
is in 'localgc' list + luaC_newobj by default puts object in 'localgc'
list
11 years ago
Roberto Ierusalimschy
af35c7f398
upvalues collected by reference count
11 years ago
Roberto Ierusalimschy
742b7377d3
Lua closures go to local, too
11 years ago
Roberto Ierusalimschy
50955e27f5
C functions and strings now go to the local list; first version
of the local collector
11 years ago
Roberto Ierusalimschy
33c49f7fa0
some details over new implementation of string table
11 years ago
Roberto Ierusalimschy
0df6635711
"fixed" objects kept in a separated list (instead of being kept in
'allgc' list with a bit marking them)
11 years ago
Roberto Ierusalimschy
ae800656c9
change in string table: string table is now independent of GC lists; all
strings live in 'normal' GC lists
11 years ago
Roberto Ierusalimschy
8c68863960
initial size of string table (MINSTRTABSIZE) should be large enough
to hold all strings needed by an empty Lua state
11 years ago
Roberto Ierusalimschy
8f6b80aa1d
GC bits SEPARATED and FINALIZEDBIT mixed in FINALIZEDBIT (with simpler
control)
11 years ago
Roberto Ierusalimschy
9eff921f8f
"barrier" for link prototype->cache changed to be consistent with
GC behavior (link is cleared to preserve invariant)
11 years ago
Roberto Ierusalimschy
8e6b7ef9ab
new function 'isgclocal' + test for GC consistency of prototype's caches
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
3991312b94
details
11 years ago
Roberto Ierusalimschy
439d74e29f
added 'local' bit (true => object is only refered by local variables)
11 years ago
Roberto Ierusalimschy
3679d33b02
barrier conditions rewritten to test first 'isblack' and then 'iswhite'
(during a pause all objects are white, so 'isblack' fails much more
often than 'iswhite')
11 years ago
Roberto Ierusalimschy
78b941039d
change to allow collector to stop when it goes to the atomic phase
(just for debugging)
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
677d90165f
no more generational collection !!!
11 years ago
Roberto Ierusalimschy
4244da96bf
'debug.subtype' -> 'math.type' (to distinguish integers and floats)
11 years ago
Roberto Ierusalimschy
fcf99bf788
'math.isfloat' replaced by 'debug.subtype'
11 years ago
Roberto Ierusalimschy
98d76cdcae
bug: Wrong error message in some short-cut expressions
11 years ago
Roberto Ierusalimschy
2f8c51a552
use unsigneds for unary minus, too
11 years ago
Roberto Ierusalimschy
b5f5fcd782
use different constants (instead of different values for the same constant)
to define number sizes (LUA_INT_INT/LUA_INT_LONG/LUA_INT_LONGLONG and
LUA_REAL_FLOAT/LUA_REAL_DOUBLE/LUA_REAL_LONGDOUBLE) + use __int64 and
I64 instead of long long (and ll) for Windows
11 years ago
Roberto Ierusalimschy
2ef9bcfd11
avoid undefined shift of LUA_NBITS in rotate operation
11 years ago
Roberto Ierusalimschy
5fa680d47f
no need for type 'b_uint' (lua_Unsigned must have at least 32 bits)
11 years ago
Roberto Ierusalimschy
48735da0d0
When loading a file, Lua may call the reader function again after
it returned end of input + luac listings choke on long strings
12 years ago
Roberto Ierusalimschy
2b4bd21585
'tonumber': base must be a number
12 years ago
Roberto Ierusalimschy
beff5b078a
'tonumber': does not accept numbers when given a base + convertion from
strings to numbers with a base moved to a separated function (more
modular)
12 years ago
Roberto Ierusalimschy
5519c98655
'lua_cvtonum' -> 'lua_strtonum'; converts only strings to numbers
12 years ago
Roberto Ierusalimschy
cbe164191c
new function 'ifloor'
12 years ago
Roberto Ierusalimschy
66d046833d
no need to check "bad conversion number->int;" in luaL_checkversion,
as now Lua does not use tricks for the conversion, but there is a
need to check the sizes of number types, as they can be different
in two modules
12 years ago
Roberto Ierusalimschy
15fdbd26fe
'numbits' moved from 'math' to 'debug' library
12 years ago
Roberto Ierusalimschy
2b4975dca7
LUA_SMALL_* changed to LUA_*SIZE + added support for long double + better
support for ANSI systems
12 years ago
Roberto Ierusalimschy
e39da66c8c
macro 'lua_strx2number' does not need to be global
12 years ago
Roberto Ierusalimschy
483c2ccd0f
avoid using raw representation of numbers for hashing, as number may
not use all its space (e.g., long double can have sizeof=12 but
use only 10 bytes)
12 years ago
Roberto Ierusalimschy
982aa7058f
'luaL_len' returns lua_Integer instead of 'int'
12 years ago
Roberto Ierusalimschy
80cdf39d0e
avoid using 'modf' in the implementation of 'math.modf', to avoid
problems with 'double*'. (When using 'float' as lua_Number,
'float*' is not compatible with 'double*'...)
12 years ago
Roberto Ierusalimschy
45f3797a5b
'long' may have more than 32 bits in some machines; use 'int' for
small lua_Integer unless necessary to use 'long'
12 years ago
Roberto Ierusalimschy
de6e5a5919
small bugs uncovered in a 64-bit machine (where 'long' has 64 bits)
12 years ago
Roberto Ierusalimschy
81102d3689
try to avoid warnings when converting int to pointer
12 years ago
Roberto Ierusalimschy
6579bd4190
reorganization of warnings + update of explicit dependencies (gcc -MM)
12 years ago
Roberto Ierusalimschy
f45177f2d3
In the table that hashes constants, use a light userdata as keys
to integer values to avoid collisions with floats with the same
numerical value
12 years ago
Roberto Ierusalimschy
d6f5fb2d2c
avoid warning for unary minus over an unsigned value
12 years ago
Roberto Ierusalimschy
7c4cc505db
added "reasonable" limit for 'string.rep' (otherwise it is too easy
to crash the machine)
12 years ago
Roberto Ierusalimschy
453450d687
new macro 'l_floor' (allows 'floorf' even when other math operations
do not have an 'f' variant)
12 years ago
Roberto Ierusalimschy
55f566bd22
use lua_Integer for integer parameters to avoid truncation
12 years ago
Roberto Ierusalimschy
130c0e40e0
new constant 'MAX_SIZE', distinct from 'MAX_SIZET', for sizes visible
from Lua; these must fit in a lua_Integer
12 years ago