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)
|
9 years ago |
Roberto Ierusalimschy
|
2b61360d82
|
avoid overflows (detected with 'clang -ftrapv')
|
9 years ago |
Roberto Ierusalimschy
|
b436ed58a3
|
'clearapihash' -> 'luaS_clearcache' and moved to 'lstring.c' (which
keeps all code related to this cache)
|
10 years ago |
Roberto Ierusalimschy
|
2ae2e6408e
|
avoid testing for NULL when marking objects that cannot be NULL
|
10 years ago |
Roberto Ierusalimschy
|
a80cada914
|
new cache for interning strings
|
10 years ago |
Roberto Ierusalimschy
|
7e2015a46d
|
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
|
10 years ago |
Roberto Ierusalimschy
|
88ef06f4f3
|
comments were wrong (not updated about several changes)
|
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
|
4542fb9f78
|
comments (a few extra quotes around identifiers)
|
10 years ago |
Roberto Ierusalimschy
|
e9885efc7c
|
added comment and assert about an (impossible) division by zero
|
10 years ago |
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
10 years ago |
Roberto Ierusalimschy
|
2f4d429071
|
details (comments)
|
10 years ago |
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
|
10 years ago |
Roberto Ierusalimschy
|
0a6b58c3aa
|
weak tables that must be retraversed are kept in 'grayagain' list
until atomic phase (instead of going to their special lists) +
more comments
|
10 years ago |
Roberto Ierusalimschy
|
df608f842a
|
'linktable' -> 'linkgclist' (and used for all links with 'gclist')
|
10 years ago |
Roberto Ierusalimschy
|
07c7fdb9df
|
simpler definition for 'setobj' (trust the compiler for the assignment)
|
10 years ago |
Roberto Ierusalimschy
|
3c6d0aaa7d
|
'iswhite' and related macros now can work directly on any object
(no need to convert to 'GCObject')
|
10 years ago |
Roberto Ierusalimschy
|
e43612aaf6
|
put the restriction that 'luaC_barrierback' works only on tables
in its prototype
|
10 years ago |
Roberto Ierusalimschy
|
2898e2fd12
|
removed useless assertion (gcstate != GCSpause already implied by
other assertions) and wrong assertion (setmetatable uses this barrier
for tables too)
|
10 years ago |
Roberto Ierusalimschy
|
bb12903120
|
type 'Udata' refers directly to structure inside the union (union
used only for aligning purposes now)
|
10 years ago |
Roberto Ierusalimschy
|
ca41b43f53
|
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
|
10 years ago |
Roberto Ierusalimschy
|
56137d58ff
|
added check for conversion 'obj2gco' (and corrections for small
problems detected by this check)
|
10 years ago |
Roberto Ierusalimschy
|
9aec500a26
|
no need for field 'gch' anymore
|
10 years ago |
Roberto Ierusalimschy
|
b9dcf9974d
|
detail (typos in comments)
|
11 years ago |
Roberto Ierusalimschy
|
4d696c45b9
|
simpler handling of 'GCScallfin' state + more comments
|
11 years ago |
Roberto Ierusalimschy
|
4a24883674
|
'GCmemtrav' does not need to track the entire collection, only each
single step individually
|
11 years ago |
Roberto Ierusalimschy
|
f61ceee708
|
LUAI_FUNC is being used only in header files
|
11 years ago |
Roberto Ierusalimschy
|
0d745ed04c
|
more precise estimation (GCestimate) for total bytes in use after
a GC cycle
|
11 years ago |
Roberto Ierusalimschy
|
da4811238a
|
details (typos in comments)
|
11 years ago |
Roberto Ierusalimschy
|
c86b9da022
|
userdata can have any Lua value as uservalue
|
11 years ago |
Roberto Ierusalimschy
|
3f78de256e
|
no need to keep threads in a different GC list, now that there is the
'twups' list
|
11 years ago |
Roberto Ierusalimschy
|
d764cc5522
|
new list 'twups' to allow traversal of upvalues from dead threads
(+ fixed some problems with cycles involving those upvalues)
|
11 years ago |
Roberto Ierusalimschy
|
ffa96d988d
|
field 'op' renamed to 'open'
|
11 years ago |
Roberto Ierusalimschy
|
1cce3e6842
|
change in the way 'collectgarbage("step", size)' interprets 'size'
(mimicking the way the GC itself behaves when Lua allocates 'size'
Kbytes)
|
11 years ago |
Roberto Ierusalimschy
|
90b0ac6495
|
limit to 'gcstepmul' imposed by 'lua_gc' (+ some details in 'lgc.c')
|
11 years ago |
Roberto Ierusalimschy
|
de3b1c9b53
|
better control for number of finalizers called at each GC cycle
(increases progressively)
|
11 years ago |
Roberto Ierusalimschy
|
733c58595b
|
no more local collection
|
11 years ago |
Roberto Ierusalimschy
|
6b30774469
|
detail (better presentation for 'luaC_step')
|
11 years ago |
Roberto Ierusalimschy
|
ba3586cc90
|
keep a single list of objects to be finalized (with local and non-local
objects), to ensure finalization order
|
11 years ago |
Roberto Ierusalimschy
|
88e23f508c
|
details
|
11 years ago |
Roberto Ierusalimschy
|
c8585efc78
|
use goto to implement a tail call in 'reallymarkobject'
|
11 years ago |
Roberto Ierusalimschy
|
4c6dfc342b
|
CallInfo lists shrinks together with their associated stacks
|
11 years ago |
Roberto Ierusalimschy
|
686e57cf9c
|
GC local pause configurable
|
11 years ago |
Roberto Ierusalimschy
|
6ca7b63bce
|
check for shrinking string table done only at the end of a GC cycle
|
11 years ago |
Roberto Ierusalimschy
|
4eeb1831be
|
new names and better order for GC states (sweep first lists that
can have dead objects)
|
11 years ago |
Roberto Ierusalimschy
|
dd373a8f66
|
threads are kept in a separated GC list, linked after the main thread
|
11 years ago |
Roberto Ierusalimschy
|
7061fe1d56
|
detail: 'sweepstep' checks end of phase after calling 'sweeplist', so
that phases with small lists return 0 at the first call to 'sweepstep'
|
11 years ago |
Roberto Ierusalimschy
|
d8aa8dd97e
|
objects in list 'tobefnz' have a GC life-cycle like all others
(specifically they are cleaned during sweep phase)
|
11 years ago |
Roberto Ierusalimschy
|
1150873447
|
'luaC_newobj' does not handle special cases; only special case
now is threads, which do not use 'luaC_newobj' anymore.
|
11 years ago |
Roberto Ierusalimschy
|
aeff4f79fa
|
local collection now calls finalizers
|
11 years ago |