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
|
ffa96d988d
|
field 'op' renamed to 'open'
|
11 years ago |
Roberto Ierusalimschy
|
733c58595b
|
no more local collection
|
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
|
1ea2d20f74
|
first implementation of '<<', '>>', and '~' (bitwise not)
|
11 years ago |
Roberto Ierusalimschy
|
c0edab0f6d
|
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
|
11 years ago |
Roberto Ierusalimschy
|
a948054a19
|
new order for binary operations (grouping them by type of result)
|
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
|
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
|
79ab21be90
|
more invariants added to memory check
|
11 years ago |
Roberto Ierusalimschy
|
d3bbb34c24
|
back to open hashing for the string table (but with a different
'hnext' field, to strings are still collected like all other
objects)
|
11 years ago |
Roberto Ierusalimschy
|
0ad15fc100
|
better (and correct!) control of 'maybedead'
|
11 years ago |
Roberto Ierusalimschy
|
aeff4f79fa
|
local collection now calls finalizers
|
11 years ago |
Roberto Ierusalimschy
|
1bf4faec64
|
new GC state to sweep 'localgc' list + small changes in sweep control
|
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
|
33c49f7fa0
|
some details over new implementation of string table
|
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
|
8f6b80aa1d
|
GC bits SEPARATED and FINALIZEDBIT mixed in FINALIZEDBIT (with simpler
control)
|
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
|
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
|
81102d3689
|
try to avoid warnings when converting int to pointer
|
12 years ago |
Roberto Ierusalimschy
|
0ce3018109
|
'pushnum' pushes a "number" (float) + new C instruction 'pushint'
|
12 years ago |
Roberto Ierusalimschy
|
a2f5c28a80
|
new operation '//' (integer division)
|
12 years ago |
Roberto Ierusalimschy
|
52cb90ec75
|
detail
|
12 years ago |
Roberto Ierusalimschy
|
75250a237c
|
typos in comments
|
12 years ago |
Roberto Ierusalimschy
|
86b39206d9
|
open upvalues cannot be old if thread is not old; when thread is old,
their list is not traversed anymore, and therefore can contain dead
elements.
|
12 years ago |
Roberto Ierusalimschy
|
a3e1c40d6d
|
remove of unecessary luaD_checkstack. (In some cases, C should
ensure stack space; in others, Lua can use the extra slots for
temporary values.)
|
12 years ago |
Roberto Ierusalimschy
|
e4f609d0ee
|
collector in generational mode must be in 'propagate' state when
not running a collection
|
13 years ago |
Roberto Ierusalimschy
|
5ac56a94dd
|
collector in generational mode should never be in 'pause' state
|
13 years ago |
Roberto Ierusalimschy
|
43bfb60ac8
|
new auxiliary function 'luaI_printinst' (to print a single instruction)
|
13 years ago |
Roberto Ierusalimschy
|
01e5f358bd
|
small improvement in lua_checkmemory (only allow dead objects in
part of the sweep list not yet sweeped)
|
13 years ago |
Roberto Ierusalimschy
|
69c775de21
|
update of 'lua_checkmemory'
|
13 years ago |
Roberto Ierusalimschy
|
3cadc37f47
|
no more 'Proto' objects on the stack. Protos are anchored on outer
Protos or on a Closure, which must be created before the Proto.
|
13 years ago |
Roberto Ierusalimschy
|
a4b96ce9a3
|
first implementation of long strings
|
13 years ago |
Roberto Ierusalimschy
|
fd22ccd6d0
|
object tag keeps variant bits too -> no need for 'isC' field in
Closures + more strick typing for closure variants
|
13 years ago |
Roberto Ierusalimschy
|
e0e406ead3
|
extra argument to instruction 'checkstack' (in 'testC')
|
13 years ago |
Roberto Ierusalimschy
|
5645a84368
|
detail about 'trick' function (nil turn it off)
|
13 years ago |
Roberto Ierusalimschy
|
3dc5475e23
|
'nCcalls' should be local to each thread, as each thread may have its
own C stack (with LuaThreads or something similar)
|
13 years ago |
Roberto Ierusalimschy
|
88c29c0cd5
|
compilation warning about integer size x pointer size
|
14 years ago |
Roberto Ierusalimschy
|
29644366fc
|
useless assignments removed (macros already do the assignment)
|
14 years ago |
Roberto Ierusalimschy
|
3b44821334
|
stricter control (using tag variants) over closure kinds (Lua x C)
|
14 years ago |
Roberto Ierusalimschy
|
aa13c591f5
|
avoid use of 'ifdef/ifndef'; use 'defined' instead (simpler and
more powerful)
|
14 years ago |