Roberto Ierusalimschy
9569ad6b0d
Comments for generational collector
8 years ago
Roberto Ierusalimschy
2331e1beec
small changes in 'luaC_upvalbarrier'
8 years ago
Roberto Ierusalimschy
e4287da3a6
generational collector (still not complete)
8 years ago
Roberto Ierusalimschy
f5f3df3bd1
generational collection: new attempt (still incomplete)
8 years ago
Roberto Ierusalimschy
2a235312f0
detail (removing spaces at end of lines)
8 years ago
Roberto Ierusalimschy
7b1fba69b7
using 'lastfree == NULL' to signal that table is using the dummy
node for its hash part + new macro 'allocsizenode'
8 years ago
Roberto Ierusalimschy
138d00176c
new flag in 'CallInfo.callstatus' to tell whether function is running
as a finalizer
8 years ago
Roberto Ierusalimschy
8d4feb504f
do not try to ensure that 'sweepgc' points to a live object
when entering sweep phase ('entersweep'); that may be too
expensive to be done still inside the atomic step. Walking
one single object more often than not will work.
9 years ago
Roberto Ierusalimschy
03412af06e
detail (removed fixed argument to function 'callallpendingfinalizers')
9 years ago
Roberto Ierusalimschy
7485512384
added comment and assert about dead keys
9 years ago
Roberto Ierusalimschy
ff1289a361
in 'luaD_call', use two functions instead of one with fixed boolean
argument
9 years ago
Roberto Ierusalimschy
cd73f3ccc5
now that we have a counter for CallInfos, use it for a more
accurate value for the memory used by a thread
9 years ago
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