Roberto Ierusalimschy
|
a2a2abcba4
|
new function 'luaC_runtilstate' to advance GC until a "valid" state
|
2009-12-11 17:14:59 -02:00 |
|
Roberto Ierusalimschy
|
3c4d970a7b
|
comment typos
|
2009-11-26 09:39:20 -02:00 |
|
Roberto Ierusalimschy
|
ce444bff33
|
(huge) simplification of GC management
|
2009-11-18 11:13:47 -02:00 |
|
Roberto Ierusalimschy
|
88eb901f81
|
registry and global table may be changed through the API without a
write barrier, so GC should visit them in the atomic phase.
|
2009-11-09 16:29:21 -02:00 |
|
Roberto Ierusalimschy
|
a921d81033
|
avoid using 'ttype' when there is an explicit test + macro 'checkdeadkey'
to avoid repetitions
|
2009-11-06 15:06:19 -02:00 |
|
Roberto Ierusalimschy
|
9756f56354
|
better control over accesses to TValue fields
|
2009-11-05 15:43:54 -02:00 |
|
Roberto Ierusalimschy
|
5bc91c6405
|
no more one environment per thread: all threads share a single global
environment
|
2009-10-23 17:12:19 -02:00 |
|
Roberto Ierusalimschy
|
5938212748
|
information about upvalues (where they come from) kept in Proto structure,
instead of sequence of pseudo-opcodes after OP_CLOSURE
|
2009-09-28 13:32:50 -03:00 |
|
Roberto Ierusalimschy
|
1829911d7c
|
some operations may shrink g->totalbytes so g->estimate must be
more flexible
|
2009-09-28 10:50:34 -03:00 |
|
Roberto Ierusalimschy
|
55dc7fb240
|
bug: stack must be cleared until its end (including extra size) +
control of stack size moved to 'ldo.c'
|
2009-07-16 13:26:09 -03:00 |
|
Roberto Ierusalimschy
|
4a67e48611
|
new macro 'condmovestack' instead of 'condhardstacktests'
|
2009-06-08 16:35:59 -03:00 |
|
Roberto Ierusalimschy
|
019ebcb85f
|
errors in finalizers are propagated with code LUA_ERRGCMM (ERRor in
__gc MetaMethod)
|
2009-05-21 17:06:11 -03:00 |
|
Roberto Ierusalimschy
|
673c456cba
|
resize string hash table only when new size is smaller than current one
|
2009-04-29 14:09:41 -03:00 |
|
Roberto Ierusalimschy
|
e091a254df
|
new way to GC stacks: the entire stack must be correct all the times;
the 'dead' part of a stack (after the top) must have only nil's, so
that 'top' may go up without cleaning the stack.
|
2009-04-28 16:04:36 -03:00 |
|
Roberto Ierusalimschy
|
4f88418170
|
'CallInfo' stack implemented as double-linked list instead of an array
|
2009-04-17 11:28:06 -03:00 |
|
Roberto Ierusalimschy
|
ba484b9eb1
|
yielding across lua_call (first version)
|
2009-03-10 14:14:37 -03:00 |
|
Roberto Ierusalimschy
|
d07abcc6c7
|
finalizers always called protected
|
2009-02-17 16:47:58 -03:00 |
|
Roberto Ierusalimschy
|
0c8f5fc2fd
|
simplification in the handling of finalizers: no more 'tmudata' list +
no more GCSsweeptmu collector's state
|
2008-06-26 16:42:45 -03:00 |
|
Roberto Ierusalimschy
|
c3525610fe
|
bug: when closing the state, 'luaC_separateudata' might mark
userdata in the wrong phase of collection, therefore avoiding
their traversal
|
2008-06-23 19:07:44 -03:00 |
|
Roberto Ierusalimschy
|
7ba62e2985
|
code reorganization (only changed comments and order of functions)
|
2008-06-23 13:51:28 -03:00 |
|
Roberto Ierusalimschy
|
e2b366c760
|
userdata with finalizers are kept in a separated list
|
2008-02-19 15:55:09 -03:00 |
|
Roberto Ierusalimschy
|
5f0a2f6248
|
more options for 'kinds' of Garbage Collection + more agressive
shrinking of stacks and string hash
|
2008-02-11 13:46:03 -02:00 |
|
Roberto Ierusalimschy
|
5e8dd55574
|
first implementation of ephemerons
|
2007-10-31 13:41:19 -02:00 |
|
Roberto Ierusalimschy
|
0e961ad47a
|
some changes toward ephemerons
|
2007-10-29 14:51:20 -02:00 |
|
Roberto Ierusalimschy
|
a7c9e45c64
|
avoid trailing white spaces
|
2006-09-11 11:07:24 -03:00 |
|
Roberto Ierusalimschy
|
3ca9af51a4
|
emergency garbage collector (core forces a GC when allocation fails)
|
2006-07-11 12:53:29 -03:00 |
|
Roberto Ierusalimschy
|
0079efc479
|
bug: collector did not compensate enough for userdata with finalizers
|
2006-05-24 11:34:06 -03:00 |
|
Roberto Ierusalimschy
|
c505f341d6
|
small changes in casts
|
2005-12-22 14:19:56 -02:00 |
|
Roberto Ierusalimschy
|
4ff1e5b4e1
|
details
|
2005-08-24 14:06:36 -03:00 |
|
Roberto Ierusalimschy
|
680fc88cc2
|
a small bug
|
2005-08-04 10:37:38 -03:00 |
|
Roberto Ierusalimschy
|
746a1d612b
|
small bug (type error)
|
2005-06-07 15:53:45 -03:00 |
|
Roberto Ierusalimschy
|
90de38bf1f
|
warnings in VS .Net
|
2005-05-31 11:25:18 -03:00 |
|
Roberto Ierusalimschy
|
6cf85dcc90
|
metatables for all types
|
2005-05-05 12:34:03 -03:00 |
|
Roberto Ierusalimschy
|
390256edf7
|
better name for GC pause
|
2005-03-22 13:04:29 -03:00 |
|
Roberto Ierusalimschy
|
4494094031
|
detail
|
2005-03-16 17:02:48 -03:00 |
|
Roberto Ierusalimschy
|
370d31a559
|
luac´ -> luai' (to avoid confusion with other luac stuff)
|
2005-03-09 13:28:07 -03:00 |
|
Roberto Ierusalimschy
|
f8df21bd20
|
`luaconf.h´ exports all its definitions always (so all of them
must have a lua/LUA prefix).
|
2005-03-08 17:10:05 -03:00 |
|
Roberto Ierusalimschy
|
d55bb795fa
|
details
|
2005-02-23 14:30:22 -03:00 |
|
Roberto Ierusalimschy
|
7d45a5f48f
|
C functions and userdata also have environments
|
2005-02-18 10:40:02 -02:00 |
|
Roberto Ierusalimschy
|
73d7640244
|
more secure way to stop GC cycles during finalizers
|
2005-02-14 11:19:50 -02:00 |
|
Roberto Ierusalimschy
|
678d2fb2ac
|
all collected userdata must go to the end of the list of finalizers
|
2005-02-11 18:03:35 -02:00 |
|
Roberto Ierusalimschy
|
4df8800a01
|
cleaner way to free all objects
|
2005-02-10 11:25:02 -02:00 |
|
Roberto Ierusalimschy
|
334ba8132b
|
cleaner way to remark open upvalues
|
2005-01-18 15:18:09 -02:00 |
|
Roberto Ierusalimschy
|
5be517602e
|
no more generational collector (and no more `noinc' mode)
|
2005-01-14 12:19:42 -02:00 |
|
Roberto Ierusalimschy
|
e2498e079e
|
change in hash algorithm so that it does not need empty slot
(tables can be 100% full)
|
2005-01-05 16:20:51 -02:00 |
|
Roberto Ierusalimschy
|
c6254dceff
|
a different option for the GC
|
2004-12-13 10:15:11 -02:00 |
|
Roberto Ierusalimschy
|
39a8082f50
|
more options for controling the GC
|
2004-12-06 15:53:42 -02:00 |
|
Roberto Ierusalimschy
|
0e002005b1
|
better names for `luaM_free...' macros
|
2004-11-24 17:20:21 -02:00 |
|
Roberto Ierusalimschy
|
2f82bf6fe9
|
better support for 64-bit machines
|
2004-11-24 16:55:56 -02:00 |
|
Roberto Ierusalimschy
|
6f1ea817f5
|
better control over memory-size overflows
|
2004-11-19 13:52:40 -02:00 |
|
Roberto Ierusalimschy
|
8050e75f9d
|
bug: gc metamethod must disable GC steps (to avoid nested calls)
|
2004-10-08 13:00:34 -03:00 |
|
Roberto Ierusalimschy
|
bd38017ddf
|
small optimization for table size in machines with double allignment
|
2004-10-06 15:34:16 -03:00 |
|
Roberto Ierusalimschy
|
0e54d2be36
|
bug: barrier was wrong for generational phase
|
2004-09-15 17:38:15 -03:00 |
|
Roberto Ierusalimschy
|
0de2065f4e
|
tighter tests for stack overflow
|
2004-09-08 11:23:09 -03:00 |
|
Roberto Ierusalimschy
|
0b06241483
|
better control for GC cycles
|
2004-08-30 10:44:44 -03:00 |
|
Roberto Ierusalimschy
|
32d4f304db
|
first implementation of generational GC
|
2004-08-24 17:12:06 -03:00 |
|
Roberto Ierusalimschy
|
26ae992129
|
less conservative write barrier for tables
|
2004-08-10 16:17:23 -03:00 |
|
Roberto Ierusalimschy
|
b4cd38ba6c
|
new scheme for configuration through `luaconf.h'
|
2004-04-30 17:13:38 -03:00 |
|
Roberto Ierusalimschy
|
178246062c
|
reuse `sweeplist' for all lists
|
2004-03-23 09:57:12 -03:00 |
|
Roberto Ierusalimschy
|
a4e1230f95
|
better way to control open upvalues
|
2004-03-15 18:04:33 -03:00 |
|
Roberto Ierusalimschy
|
b876ec61c0
|
new (temporary?) API for garbage collector
|
2004-03-09 14:34:35 -03:00 |
|
Roberto Ierusalimschy
|
2aaf7394ad
|
more and better tools (assertions & inspectors) to check incremental GC
|
2004-02-16 16:09:52 -03:00 |
|
Roberto Ierusalimschy
|
beb2aa5a46
|
atomic operations are not GC "states"
|
2003-12-12 16:29:34 -02:00 |
|
Roberto Ierusalimschy
|
47fc57a252
|
TObject' renamed to TValue' + other name changes and better assertions
for incremental garbage collection
|
2003-12-10 10:13:36 -02:00 |
|
Roberto Ierusalimschy
|
df429f163a
|
First version of incremental GC
|
2003-12-09 14:56:11 -02:00 |
|
Roberto Ierusalimschy
|
fe595a45c2
|
`grayagain' list
|
2003-12-04 16:52:23 -02:00 |
|
Roberto Ierusalimschy
|
9db1942bac
|
sweep of strings also incremental
|
2003-12-04 15:22:42 -02:00 |
|
Roberto Ierusalimschy
|
c6eac44a94
|
two different white flags (to distinguish dead elements from new ones)
|
2003-12-03 18:03:07 -02:00 |
|
Roberto Ierusalimschy
|
8878554b85
|
single list for all collectible objects, with udata separated at the
end of the list
|
2003-12-03 10:30:41 -02:00 |
|
Roberto Ierusalimschy
|
af850484a9
|
default metatable can be NULL
|
2003-12-01 16:22:56 -02:00 |
|
Roberto Ierusalimschy
|
1d10acb355
|
incremental GC phases
|
2003-12-01 14:33:30 -02:00 |
|
Roberto Ierusalimschy
|
57b6ed6815
|
initial implementation of white/gray/black coloring
|
2003-11-19 17:41:57 -02:00 |
|
Roberto Ierusalimschy
|
366e4af3c9
|
towards incremental GC
|
2003-11-18 12:55:11 -02:00 |
|
Roberto Ierusalimschy
|
ab7d9bfd0c
|
cleaner code for manipulation of `marked' field
|
2003-11-17 17:50:05 -02:00 |
|
Roberto Ierusalimschy
|
8332d5c8a5
|
parser fully reentrant(!)
|
2003-08-27 18:01:44 -03:00 |
|
Roberto Ierusalimschy
|
a0a384a6b1
|
bug: userdata to be collected still counts into new GC threshold,
increasing memory consumption
|
2003-07-29 16:25:37 -03:00 |
|
Roberto Ierusalimschy
|
fa26d294ae
|
new way to control `pc' of running functions
|
2003-07-16 17:49:02 -03:00 |
|
Roberto Ierusalimschy
|
9e05503ffa
|
bug: C functions also may have stacks larger than current top
|
2003-07-07 10:32:19 -03:00 |
|
Roberto Ierusalimschy
|
ecf5730c0c
|
(much) smarter way to clear weak tables
|
2003-05-16 15:58:39 -03:00 |
|
Roberto Ierusalimschy
|
572a69df78
|
Lua does not need all those different types...
|
2003-04-28 16:26:16 -03:00 |
|
Roberto Ierusalimschy
|
0d88545b82
|
warnings from several compilers (mainly typecasts when lua_Number is float)
|
2003-04-03 10:35:34 -03:00 |
|
Roberto Ierusalimschy
|
ab9e062928
|
name changes to avoid name collision between macros and variables
|
2003-03-18 09:50:04 -03:00 |
|
Roberto Ierusalimschy
|
7a40cdbda0
|
different variables for number of upvalues and size of upvalue array
(makes code clearer)
|
2003-02-11 08:46:24 -02:00 |
|
Roberto Ierusalimschy
|
6f207b15fb
|
resist errors in finalizers during lua_close
|
2003-02-10 15:32:50 -02:00 |
|
Roberto Ierusalimschy
|
dd8edecae1
|
new functions to manipulate upvales (get/setupvalue)
|
2002-12-19 09:11:55 -02:00 |
|
Roberto Ierusalimschy
|
27c6b4d422
|
each .c file defines its own name
|
2002-12-04 15:38:31 -02:00 |
|
Roberto Ierusalimschy
|
c75c3cfd19
|
avoid names `str...' (may conflict with string.h)
|
2002-12-02 10:06:10 -02:00 |
|
Roberto Ierusalimschy
|
e47baca75a
|
warnings from Visual C++
|
2002-11-25 10:38:47 -02:00 |
|
Roberto Ierusalimschy
|
dbc5451bea
|
comments
|
2002-11-22 16:01:46 -02:00 |
|
Roberto Ierusalimschy
|
5142e630bf
|
new macro `condhardstacktests' to control hard stack tests
|
2002-11-21 15:19:11 -02:00 |
|
Roberto Ierusalimschy
|
2e4e888de0
|
Lua functions must have a frame or a saved pc.
|
2002-11-21 13:46:20 -02:00 |
|
Roberto Ierusalimschy
|
aff97fffc4
|
C functions cannot increase its top without filling the stack
|
2002-11-21 12:17:15 -02:00 |
|
Roberto Ierusalimschy
|
43013b39cc
|
new representation for hooks (to allow asynchronous calls to sethook)
|
2002-11-18 09:01:55 -02:00 |
|
Roberto Ierusalimschy
|
5c5d9b2703
|
back to `__mode' metafield to specify weakness
|
2002-11-14 10:01:35 -02:00 |
|
Roberto Ierusalimschy
|
3010eb0536
|
all objects with several children (tables, closures, stacks, prototypes)
go to `gray' queue
|
2002-11-13 09:49:19 -02:00 |
|
Roberto Ierusalimschy
|
ac27b7a842
|
avoid traversing extra elements when cleaning weak tables
|
2002-11-11 09:52:43 -02:00 |
|
Roberto Ierusalimschy
|
dff9be4224
|
new macros to distinguish different types of object moves (for future GC
evolution).
|
2002-11-07 13:37:10 -02:00 |
|
Roberto Ierusalimschy
|
96e15b8501
|
threads now are real Lua objects, subject to garbage collection
|
2002-10-25 17:05:28 -03:00 |
|
Roberto Ierusalimschy
|
81bc5711a8
|
only one instance of registry and default metatable per global state
|
2002-10-22 14:58:14 -03:00 |
|
Roberto Ierusalimschy
|
b3d0682fb9
|
use of different buffers for scanner and concatenation
|
2002-10-08 15:46:08 -03:00 |
|