Roberto Ierusalimschy
|
20b9e59441
|
barrier macros rewritten as expressions
|
2015-08-03 16:40:42 -03:00 |
|
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
2014-10-25 09:50:46 -02:00 |
|
Roberto Ierusalimschy
|
3c6d0aaa7d
|
'iswhite' and related macros now can work directly on any object
(no need to convert to 'GCObject')
|
2014-07-19 12:14:46 -03:00 |
|
Roberto Ierusalimschy
|
e43612aaf6
|
put the restriction that 'luaC_barrierback' works only on tables
in its prototype
|
2014-07-19 12:09:37 -03:00 |
|
Roberto Ierusalimschy
|
9aec500a26
|
no need for field 'gch' anymore
|
2014-07-17 14:27:49 -03:00 |
|
Roberto Ierusalimschy
|
ed795d5ff4
|
detail (removed unused prototype)
|
2014-03-19 15:51:16 -03:00 |
|
Roberto Ierusalimschy
|
3f78de256e
|
no need to keep threads in a different GC list, now that there is the
'twups' list
|
2014-02-18 10:46:26 -03:00 |
|
Roberto Ierusalimschy
|
1cce3e6842
|
change in the way 'collectgarbage("step", size)' interprets 'size'
(mimicking the way the GC itself behaves when Lua allocates 'size'
Kbytes)
|
2014-02-14 14:43:14 -02:00 |
|
Roberto Ierusalimschy
|
de3b1c9b53
|
better control for number of finalizers called at each GC cycle
(increases progressively)
|
2014-02-13 12:46:38 -02:00 |
|
Roberto Ierusalimschy
|
733c58595b
|
no more local collection
|
2014-02-13 10:11:34 -02:00 |
|
Roberto Ierusalimschy
|
ba3586cc90
|
keep a single list of objects to be finalized (with local and non-local
objects), to ensure finalization order
|
2014-02-11 10:18:12 -02:00 |
|
Roberto Ierusalimschy
|
06156e7575
|
detail (setmetatable do not need to use a back GC barrier)
|
2013-09-11 17:15:31 -03:00 |
|
Roberto Ierusalimschy
|
4eeb1831be
|
new names and better order for GC states (sweep first lists that
can have dead objects)
|
2013-09-11 11:47:08 -03:00 |
|
Roberto Ierusalimschy
|
dd373a8f66
|
threads are kept in a separated GC list, linked after the main thread
|
2013-09-11 11:09:55 -03:00 |
|
Roberto Ierusalimschy
|
d8aa8dd97e
|
objects in list 'tobefnz' have a GC life-cycle like all others
(specifically they are cleaned during sweep phase)
|
2013-09-11 09:47:48 -03:00 |
|
Roberto Ierusalimschy
|
1150873447
|
'luaC_newobj' does not handle special cases; only special case
now is threads, which do not use 'luaC_newobj' anymore.
|
2013-09-11 09:26:14 -03:00 |
|
Roberto Ierusalimschy
|
aeff4f79fa
|
local collection now calls finalizers
|
2013-09-03 12:37:10 -03:00 |
|
Roberto Ierusalimschy
|
1bf4faec64
|
new GC state to sweep 'localgc' list + small changes in sweep control
|
2013-08-30 16:14:26 -03:00 |
|
Roberto Ierusalimschy
|
26629d0af1
|
details (a few casts moved from macro invocation to macro definition)
|
2013-08-29 10:49:57 -03:00 |
|
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
|
2013-08-27 17:04:00 -03:00 |
|
Roberto Ierusalimschy
|
af35c7f398
|
upvalues collected by reference count
|
2013-08-27 15:53:35 -03:00 |
|
Roberto Ierusalimschy
|
50955e27f5
|
C functions and strings now go to the local list; first version
of the local collector
|
2013-08-23 10:34:54 -03:00 |
|
Roberto Ierusalimschy
|
0df6635711
|
"fixed" objects kept in a separated list (instead of being kept in
'allgc' list with a bit marking them)
|
2013-08-21 17:09:51 -03:00 |
|
Roberto Ierusalimschy
|
ae800656c9
|
change in string table: string table is now independent of GC lists; all
strings live in 'normal' GC lists
|
2013-08-21 16:21:16 -03:00 |
|
Roberto Ierusalimschy
|
8f6b80aa1d
|
GC bits SEPARATED and FINALIZEDBIT mixed in FINALIZEDBIT (with simpler
control)
|
2013-08-20 14:46:34 -03:00 |
|
Roberto Ierusalimschy
|
9eff921f8f
|
"barrier" for link prototype->cache changed to be consistent with
GC behavior (link is cleared to preserve invariant)
|
2013-08-19 11:18:43 -03:00 |
|
Roberto Ierusalimschy
|
439d74e29f
|
added 'local' bit (true => object is only refered by local variables)
|
2013-08-16 15:55:49 -03:00 |
|
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')
|
2013-08-13 14:36:44 -03:00 |
|
Roberto Ierusalimschy
|
677d90165f
|
no more generational collection !!!
|
2013-08-05 13:58:28 -03:00 |
|
Roberto Ierusalimschy
|
ae1d318822
|
small bug: generational mode is always in 'propagate' mode only
outside the collector: during collection of course it must go to
other modes.
|
2012-09-11 09:53:08 -03:00 |
|
Roberto Ierusalimschy
|
e4f609d0ee
|
collector in generational mode must be in 'propagate' state when
not running a collection
|
2012-07-04 12:52:38 -03:00 |
|
Roberto Ierusalimschy
|
e29f3a5751
|
definition of 'GCSTEPSIZE' moved to header file + small changes
|
2012-05-23 12:43:14 -03:00 |
|
Roberto Ierusalimschy
|
398811a313
|
simpler macro 'luaC_condGC' + better 'step' in 'lua_gc' +
micro bug in 'luaC_checkfinalizer' (current sweep object could be
removed from 'allgc' list)
|
2012-05-21 10:18:10 -03:00 |
|
Roberto Ierusalimschy
|
31829ad177
|
test for whether collector is running moved from function to
macro 'luaC_condGC'.
|
2012-05-11 16:22:33 -03:00 |
|
Roberto Ierusalimschy
|
0010ec68b1
|
documentation comment (small correction about strings being
gray)
|
2012-01-23 18:29:12 -02:00 |
|
Roberto Ierusalimschy
|
788a0ecd27
|
'luaC_separateudata' renamed to 'separatetobefnz' and called only
from 'lgc.c'
|
2011-10-03 14:54:25 -03:00 |
|
Roberto Ierusalimschy
|
f3b0eb3ecf
|
lint (unused macros)
|
2011-09-30 09:44:19 -03:00 |
|
Roberto Ierusalimschy
|
c4ea0c3b29
|
detail (cleaning trailing spaces)
|
2011-01-26 14:30:02 -02:00 |
|
Roberto Ierusalimschy
|
868ff40339
|
full collection does not restart collector + avoid changing GC
state if an error happens in a step
|
2010-12-29 16:00:23 -02:00 |
|
Roberto Ierusalimschy
|
737f119187
|
better control for GC running or stopped
|
2010-12-20 16:17:46 -02:00 |
|
Roberto Ierusalimschy
|
a40768e5ea
|
new macro 'luaC_condGC' to allow extra code to be run in case
of GC steps
|
2010-12-17 10:02:29 -02:00 |
|
Roberto Ierusalimschy
|
35931bbed4
|
comments
|
2010-12-02 17:51:15 -02:00 |
|
Roberto Ierusalimschy
|
9b7a12c46d
|
finalizers (__gc) for tables
|
2010-11-26 12:32:31 -02:00 |
|
Roberto Ierusalimschy
|
a71c5f6f53
|
typo in comments
|
2010-06-30 11:11:17 -03:00 |
|
Roberto Ierusalimschy
|
fabe4ec487
|
better barrier for prototypes
|
2010-06-07 13:55:34 -03:00 |
|
Roberto Ierusalimschy
|
575074fd85
|
Lua closures are cached for reuse
|
2010-06-04 10:25:10 -03:00 |
|
Roberto Ierusalimschy
|
1c1a98e872
|
corrected some places where an old object could end up in front
of a new one + minimal documentation about this problem
|
2010-05-10 15:23:45 -03:00 |
|
Roberto Ierusalimschy
|
c006f085d9
|
new macro 'resetoldbit'
|
2010-05-10 13:46:49 -03:00 |
|
Roberto Ierusalimschy
|
32c1764b5d
|
slightly better definition for 'isgray'
|
2010-05-07 15:43:51 -03:00 |
|
Roberto Ierusalimschy
|
b373a40133
|
new macro 'isgenerational' + new macro 'isold' + better deffinition
for 'isdead', compatible with the code used by 'sweeplist'
|
2010-05-07 15:08:05 -03:00 |
|