Roberto Ierusalimschy
d2ea5b00b7
new function 'luaC_changemode' +
...
bug: objects entering the 'allgc' list must have their OLDBIT cleared
(upvalues being cleared) + bug: in 'checkSizes', KGC_EMERGENCY is
stored in 'gckind' field, not in 'gcstate' + current white changes when
entering sweep phase (so there are dead objects only in that phase)
2010-05-05 15:58:36 -03:00
Roberto Ierusalimschy
d77898597e
new function 'luaC_changemode'
2010-05-05 15:53:41 -03:00
Roberto Ierusalimschy
237f755dca
typos in comments
2010-05-05 15:49:56 -03:00
Roberto Ierusalimschy
7444b5a1d5
better documentation of GC costs
2010-05-05 10:39:58 -03:00
Roberto Ierusalimschy
e7ce7e1850
changes in patch to monitor garbage collection
2010-05-04 15:10:02 -03:00
Roberto Ierusalimschy
3e662cec89
full GC must run finalizers only after finishing everything else
...
(including a return to generational mode if needed)
2010-05-04 15:09:06 -03:00
Roberto Ierusalimschy
fde866e303
details (comments)
2010-05-04 14:25:19 -03:00
Roberto Ierusalimschy
2d7a81a204
missing parentheses in declaration
2010-05-04 14:21:08 -03:00
Roberto Ierusalimschy
658ea8752b
no need to handle '\0' differently from other control chars in
...
format '%q'
2010-05-04 14:20:33 -03:00
Roberto Ierusalimschy
aa73403ba4
no need of a KGC_FORCED collection kind; it has the same behavior of
...
a normal collection
2010-05-03 14:39:48 -03:00
Roberto Ierusalimschy
0c27de2e7b
no more 'finalize' phase in GC; finalizers are called along the
...
entire cycle
2010-05-03 14:33:39 -03:00
Roberto Ierusalimschy
d25f7f9d78
items in 'tobefnz' are kept black (as before recent change) and changed
...
to white only when needed (being moved to 'allgc' when not keeping
invariant).
2010-05-03 08:55:40 -03:00
Roberto Ierusalimschy
85555646e3
invariant must be kept in atomic 'phase' too
2010-05-03 08:24:30 -03:00
Roberto Ierusalimschy
4d871ee973
"gray lists" only need to be valid when 'keepinvariant' is true
2010-04-30 15:37:14 -03:00
Roberto Ierusalimschy
b9e1dec2cb
added comment explaining a bit about the invariants of the collector
2010-04-30 15:36:45 -03:00
Roberto Ierusalimschy
dc2b8a0073
detail
2010-04-30 15:36:22 -03:00
Roberto Ierusalimschy
9a9fe42deb
wrong comment
2010-04-30 15:17:24 -03:00
Roberto Ierusalimschy
0062db1e06
default PAUSE should be 200 (differences may be corrected in
...
internal multiplers)
+ check for unbilt stack equal the one used by lgc.c
2010-04-30 11:22:23 -03:00
Roberto Ierusalimschy
23001d8607
nasty GC bug: upvalue must be turned white when not keeping invariant,
...
but barrier was not being called when uv->v were already white.
2010-04-29 18:43:36 -03:00
Roberto Ierusalimschy
5d79c6684b
removed commented-out debugging code
2010-04-29 18:42:33 -03:00
Roberto Ierusalimschy
3410dcd375
new way to control GC speed
2010-04-29 14:35:10 -03:00
Roberto Ierusalimschy
5a7a0c72d8
'luaC_linkupval' embedded into call site
2010-04-29 14:34:35 -03:00
Roberto Ierusalimschy
ee7478e884
improved 'lua_checkmemory', with better control over gray objects
2010-04-29 14:33:51 -03:00
Roberto Ierusalimschy
aaa5d7adab
'luaC_linkupval' moved into 'lfunc.c' code + new way to control GC speed
2010-04-29 14:32:40 -03:00
Roberto Ierusalimschy
3eb1788bb4
new way to control GC speed (keeping a 'debt' counter)
2010-04-29 14:31:31 -03:00
Roberto Ierusalimschy
00114a95b2
lots of new comments + small changes in loop controls + other small
...
"janitor work"
2010-04-26 14:58:00 -03:00
Roberto Ierusalimschy
4aaf0ef75c
"to-be-finalized" objects marked and sweeped like all other objects
2010-04-20 17:15:30 -03:00
Roberto Ierusalimschy
ed720d09f3
upvalue barriers for Lua functions must act on the upvalue itself,
...
not on its closure
2010-04-20 17:14:50 -03:00
Roberto Ierusalimschy
376e939ef6
missing parentheses around 'luaL_pushresultsize' declaration
2010-04-19 15:52:15 -03:00
Roberto Ierusalimschy
9d28e2b3e5
bug with io.read(op, "*n")
2010-04-19 15:04:58 -03:00
Roberto Ierusalimschy
49ca1f7083
allows thread switches (when/if there are thread switches) in the same
...
places that finalizers can run (so they should be safe...)
2010-04-19 14:58:46 -03:00
Roberto Ierusalimschy
4db6f20770
ensure that 'luai_userstatethread' is always called (even if
...
'stack_init' throws a memory error)
2010-04-19 14:40:13 -03:00
Roberto Ierusalimschy
cca71912e6
'gcinfo' was deprecated in version 5.0.
2010-04-19 14:02:02 -03:00
Roberto Ierusalimschy
8003e9544d
'string.format' may get buffer as an argument when there are
...
missing arguments and format string is too long
2010-04-19 13:39:25 -03:00
Roberto Ierusalimschy
973d81efb3
complete control over number of each kind of object allocated
2010-04-19 13:38:25 -03:00
Roberto Ierusalimschy
26d4a73962
with light C functions, 'pairs' does not need to keep 'next' as an
...
upvalue.
2010-04-19 13:36:06 -03:00
Roberto Ierusalimschy
99a39f6f4a
tells the allocation function that the first block is a thread
2010-04-19 13:34:46 -03:00
Roberto Ierusalimschy
1bb407e494
in lua_gc/step, 'luaC_step' changes GCthreshold, so there was little
...
control over the real step size.
2010-04-19 13:33:19 -03:00
Roberto Ierusalimschy
53f9499f7f
"light C function" is a better name than "C-function pointer"
2010-04-18 10:22:48 -03:00
Roberto Ierusalimschy
575befc394
comparsion tag methods follow the same rule as other binary TMs
2010-04-18 10:15:11 -03:00
Roberto Ierusalimschy
e7ffb1b501
macro LUA_USE_LONGJMP allows choosing longjmp when compiling Lua as
...
C++ code
2010-04-18 09:41:35 -03:00
Roberto Ierusalimschy
c066ac10a9
better line numbers for function calls and unary/binary operators +
...
null statement + no more "ambiguous syntax" restriction
2010-04-17 09:46:32 -03:00
Roberto Ierusalimschy
1e6940f291
'gcstate' now also runs collector until given state + small changes
...
in 'testC' to test 'lua_topointer' and 'lua_tocfunction'
2010-04-16 14:42:49 -03:00
Roberto Ierusalimschy
d8d81ba891
new escape sequence '\*' + several comments + moving options from
...
switch default into cases (as now locale is fixed)
2010-04-16 09:31:07 -03:00
Roberto Ierusalimschy
cf22133b69
no need to avoid calling ctype functions as now they are implemented
...
by us (no inefficiencies due to accessing locale information)
2010-04-15 16:44:43 -03:00
Roberto Ierusalimschy
b7be05ad27
invalid instructions "cannot" happen
2010-04-15 16:43:43 -03:00
Roberto Ierusalimschy
afdb19ac82
no more 'ccall' nor 'cpcall' functions. (With light C functions they
...
are obsolete.)
2010-04-14 12:14:21 -03:00
Roberto Ierusalimschy
7dfa4cd655
first implementation of light C functions
2010-04-14 12:13:48 -03:00
Roberto Ierusalimschy
fc6203ee43
BUG: 'string.format' may get buffer when there are missing arguments
2010-04-12 13:13:02 -03:00
Roberto Ierusalimschy
b2dd246b7a
better control in 'totalmem' over choosing counters
2010-04-12 13:07:39 -03:00