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)
|
2013-09-05 16:31:49 -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
|
af35c7f398
|
upvalues collected by reference count
|
2013-08-27 15:53:35 -03:00 |
|
Roberto Ierusalimschy
|
742b7377d3
|
Lua closures go to local, too
|
2013-08-26 09:41:10 -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
|
33c49f7fa0
|
some details over new implementation of string table
|
2013-08-22 12:21:48 -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
|
623e388bb4
|
double-linked list of all upvalues elliminated and changed to a
traversal of all non-marked threads
|
2013-08-07 09:18:11 -03:00 |
|
Roberto Ierusalimschy
|
677d90165f
|
no more generational collection !!!
|
2013-08-05 13:58:28 -03:00 |
|
Roberto Ierusalimschy
|
f7ec36ab16
|
comment
|
2012-07-02 10:37:04 -03:00 |
|
Roberto Ierusalimschy
|
cc2a60ecb7
|
bugs in yields inside debug hooks
|
2012-06-08 12:14:04 -03:00 |
|
Roberto Ierusalimschy
|
086da10dac
|
merge of fields 'lastmajormem' (used in gen. mode) and 'estimate'
(used in inc. mode)
|
2012-05-22 14:50:39 -03:00 |
|
Roberto Ierusalimschy
|
b36b4b521f
|
try to avoid sweeping new objects created with new white (and
therefore not collectable in the current cycle)
|
2012-05-22 14:32:25 -03:00 |
|
Roberto Ierusalimschy
|
2a66b34f72
|
revamp of the GC pace control; more like 5.1: any X Kbytes allocated
makes the GC handle f(X) Kbytes of objects
|
2012-05-20 17:36:44 -03:00 |
|
Roberto Ierusalimschy
|
678c1255c9
|
random seed used in the hash of all strings to avoid intentional
collisions
|
2012-02-01 19:57:15 -02:00 |
|
Roberto Ierusalimschy
|
a4b96ce9a3
|
first implementation of long strings
|
2012-01-25 19:05:40 -02:00 |
|
Roberto Ierusalimschy
|
fd22ccd6d0
|
object tag keeps variant bits too -> no need for 'isC' field in
Closures + more strick typing for closure variants
|
2012-01-20 20:05:50 -02:00 |
|
Roberto Ierusalimschy
|
9caf5b4f79
|
lint (unused definition)
|
2011-09-30 09:46:06 -03:00 |
|
Roberto Ierusalimschy
|
3dc5475e23
|
'nCcalls' should be local to each thread, as each thread may have its
own C stack (with LuaThreads or something similar)
|
2011-08-23 14:24:34 -03:00 |
|
Roberto Ierusalimschy
|
3b44821334
|
stricter control (using tag variants) over closure kinds (Lua x C)
|
2011-06-02 16:31:40 -03:00 |
|
Roberto Ierusalimschy
|
551b076f1c
|
change in the relationship between totalbytes and GCdebt - luaM_realloc_
is too critical to update two counters
|
2010-12-20 17:40:07 -02:00 |
|
Roberto Ierusalimschy
|
737f119187
|
better control for GC running or stopped
|
2010-12-20 16:17:46 -02:00 |
|
Roberto Ierusalimschy
|
9b7a12c46d
|
finalizers (__gc) for tables
|
2010-11-26 12:32:31 -02:00 |
|
Roberto Ierusalimschy
|
fdd5f2f7a3
|
comment typos
|
2010-10-29 15:52:46 -02:00 |
|
Roberto Ierusalimschy
|
ffff9a49da
|
'nresults' in CallInfo now refers to number of results that the current
function returns (and not what it expects from a call)
|
2010-09-30 14:21:31 -03:00 |
|
Roberto Ierusalimschy
|
6828f6d427
|
new parameter 'majorinc' to control frequency of major collections
in generational mode
|
2010-09-03 11:14:01 -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
|
3eb1788bb4
|
new way to control GC speed (keeping a 'debt' counter)
|
2010-04-29 14:31:31 -03:00 |
|
Roberto Ierusalimschy
|
7dfa4cd655
|
first implementation of light C functions
|
2010-04-14 12:13:48 -03:00 |
|
Roberto Ierusalimschy
|
d20ff60615
|
new macro LUA_NUMTAGS
|
2010-04-12 13:07:29 -03:00 |
|
Roberto Ierusalimschy
|
055104f5b6
|
keep memory-error message in the global state, so that its use
does not depend on Lua internalizing strings to avoid a string
creation on memory errors
|
2010-04-08 14:16:46 -03:00 |
|
Roberto Ierusalimschy
|
6abde1b05a
|
no need to keep "_ENV" name in global state (can be kept in lex state)
|
2010-04-05 13:35:37 -03:00 |
|
Roberto Ierusalimschy
|
a8d3aa14fd
|
global table now is only kept in the registry
|
2010-03-29 14:43:14 -03:00 |
|
Roberto Ierusalimschy
|
064e406f67
|
no more fenvs!
|
2010-03-26 17:58:11 -03:00 |
|
Roberto Ierusalimschy
|
5c87f61e6b
|
major collections in generational mode
|
2010-03-25 16:37:23 -03:00 |
|
Roberto Ierusalimschy
|
4433dbb5f5
|
userdata with finalizers are kept in a separated list ('udgc'), instead
of at the end of 'rootgc' (which was renamed to 'allgc', as it is not
"root" in the usual meaning for collectors)
|
2010-03-24 10:07:01 -03:00 |
|
Roberto Ierusalimschy
|
74123e9686
|
draft version of a generational mode for garbage collection. (Not well
tested; no major collections; ...)
|
2010-03-22 15:28:03 -03:00 |
|
Roberto Ierusalimschy
|
22ef84b6c8
|
'_ENV' name permanently stored in global state for easier access
|
2010-03-13 12:55:42 -03:00 |
|
Roberto Ierusalimschy
|
c8ff7de7f0
|
field 'oldtop' renamed to 'extra', as it can be used for other
purposes
|
2010-02-09 09:55:37 -02:00 |
|
Roberto Ierusalimschy
|
f84b575cfa
|
no more pseudoindex LUA_GLOBALSINDEX; global table now accessible
through registry
|
2009-12-22 13:32:50 -02:00 |
|
Roberto Ierusalimschy
|
3a9ae612a4
|
macro 'ngcotouv' is the same as 'gco2uv', so it was removed
|
2009-12-11 11:39:34 -02:00 |
|
Roberto Ierusalimschy
|
3c4d970a7b
|
comment typos
|
2009-11-26 09:39:20 -02:00 |
|
Roberto Ierusalimschy
|
b0f2b288a6
|
new scheme for debug info about tail calls: no more 'fake' stack entries,
but stack entry knows whether it was tail called
|
2009-11-25 13:27:51 -02:00 |
|
Roberto Ierusalimschy
|
ce444bff33
|
(huge) simplification of GC management
|
2009-11-18 11:13:47 -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
|
f76f4cb79d
|
new way to control stack overflow, controling only total size of the stack
|
2009-07-15 14:26:14 -03:00 |
|
Roberto Ierusalimschy
|
1d6ebce296
|
new function 'lua_version' (so that 'checkversion' can be implemented
in the auxiliary library)
|
2009-06-18 15:59:18 -03:00 |
|
Roberto Ierusalimschy
|
9423e22aa3
|
no more L->base + ci->base only for Lua functions (C functions may use
'func')
|
2009-06-01 16:09:26 -03:00 |
|
Roberto Ierusalimschy
|
d3037d97ec
|
several small improvements based on 'ci' being fixed now (including
erasing savedpc from lua_State)
|
2009-04-17 19:00:01 -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
|
70a63fa5ad
|
first implementation of yieldable 'pcall'
|
2009-04-08 15:04:33 -03:00 |
|
Roberto Ierusalimschy
|
6d0ae11c57
|
'context' added to suspendable calls
|
2009-03-23 11:26:12 -03:00 |
|
Roberto Ierusalimschy
|
ba484b9eb1
|
yielding across lua_call (first version)
|
2009-03-10 14:14:37 -03:00 |
|
Roberto Ierusalimschy
|
1817dfc301
|
initial separation, in CallInfo, of what is relevant only to Lua
functions or only to C functions
|
2009-03-04 10:32:29 -03:00 |
|
Roberto Ierusalimschy
|
d2ebdc045b
|
new macro 'lua_checkversion' to check whether core and application are
compatible
|
2009-02-18 14:20:56 -03:00 |
|
Roberto Ierusalimschy
|
f94cd2201c
|
better control of call status through CallInfo
|
2008-08-26 10:27:42 -03:00 |
|
Roberto Ierusalimschy
|
394646891c
|
new field 'status' in CallInfo structure
|
2008-08-13 14:01:33 -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
|
8fd28611d5
|
outdated comment
|
2008-06-23 13:51:08 -03:00 |
|
Roberto Ierusalimschy
|
e2b366c760
|
userdata with finalizers are kept in a separated list
|
2008-02-19 15:55:09 -03:00 |
|
Roberto Ierusalimschy
|
a73930228a
|
more options for 'kinds' of Garbage Collection
|
2008-02-11 13:45:30 -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
|
593bfc9668
|
should not manipulate NULL pointers (even without accessing them)
|
2007-02-07 15:48:52 -02:00 |
|
Roberto Ierusalimschy
|
d1ef7e0ec6
|
avoid local "pc" in interpreter loop (tricky optimization with no real gain)
|
2006-09-19 10:57:50 -03:00 |
|
Roberto Ierusalimschy
|
93bf618504
|
BUG: there is only one C stack, so nCcalls must be global
|
2006-08-15 16:59:20 -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
|
ea2cc2bc47
|
small improvements for allignments
|
2006-02-06 16:27:59 -02:00 |
|
Roberto Ierusalimschy
|
e84b11a494
|
avoid names starting with '_'
|
2005-07-09 10:22:34 -03:00 |
|
Roberto Ierusalimschy
|
eca9fa02d2
|
small improvement
|
2005-06-03 17:16:16 -03:00 |
|
Roberto Ierusalimschy
|
6cf85dcc90
|
metatables for all types
|
2005-05-05 12:34:03 -03:00 |
|
Roberto Ierusalimschy
|
8718fda9b2
|
added LUAI_FUNC to functions not in the API
|
2005-04-25 16:24:10 -03:00 |
|
Roberto Ierusalimschy
|
7b6c3b463e
|
small optimizations
|
2005-04-05 10:41:29 -03:00 |
|
Roberto Ierusalimschy
|
390256edf7
|
better name for GC pause
|
2005-03-22 13:04:29 -03:00 |
|
Roberto Ierusalimschy
|
fb0f95a2b7
|
call limit may be larger than shorts
|
2005-03-18 15:55:09 -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
|
678d2fb2ac
|
all collected userdata must go to the end of the list of finalizers
|
2005-02-11 18:03:35 -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
|
2419f2bf02
|
cleaner API for coroutines
|
2004-09-15 17:39:42 -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
|
e8d4fe7236
|
new macro lua_threadyield' + lock stuff in luaconf.h' + details
|
2004-06-02 16:07:55 -03:00 |
|
Roberto Ierusalimschy
|
616438fe9a
|
new way to use vararg' parameters (with ...')
|
2004-05-31 15:51:50 -03:00 |
|
Roberto Ierusalimschy
|
0bda88e6cd
|
small steps towards yields in iterators and tag methods
|
2004-05-14 16:25:09 -03:00 |
|
Roberto Ierusalimschy
|
26a9b249db
|
details
|
2004-03-24 12:46:49 -03: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
|
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
|
366e4af3c9
|
towards incremental GC
|
2003-11-18 12:55:11 -02:00 |
|
Roberto Ierusalimschy
|
b97fb932ec
|
Lua kernel does not use malloc/free functions.
|
2003-10-02 17:31:17 -03:00 |
|
Roberto Ierusalimschy
|
fa26d294ae
|
new way to control `pc' of running functions
|
2003-07-16 17:49:02 -03:00 |
|
Roberto Ierusalimschy
|
572a69df78
|
Lua does not need all those different types...
|
2003-04-28 16:26:16 -03:00 |
|
Roberto Ierusalimschy
|
92f6e0c1bf
|
no-nonsense debug information about tail calls
|
2003-02-27 08:52:30 -03:00 |
|
Roberto Ierusalimschy
|
5f698f8b6f
|
simpler interface to hooks + use of `int' to count hooks
|
2002-11-25 15:47:13 -02:00 |
|
Roberto Ierusalimschy
|
dbc5451bea
|
comments
|
2002-11-22 16:01:46 -02:00 |
|
Roberto Ierusalimschy
|
2d2d45976c
|
separated control over C recursion level
|
2002-11-22 15:16:52 -02:00 |
|
Roberto Ierusalimschy
|
be00cd2a6b
|
easier way to keep `base' correct
|
2002-11-21 13:46:44 -02:00 |
|
Roberto Ierusalimschy
|
ddc144e4d2
|
keep L->ci->base in L->base for faster access
|
2002-11-21 13:16:04 -02:00 |
|
Roberto Ierusalimschy
|
c4ae00a3d1
|
details
|
2002-11-18 13:23:43 -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
|
2f91f95d94
|
better control over GCObjects
|
2002-11-13 09:32:26 -02:00 |
|
Roberto Ierusalimschy
|
118347d8c3
|
new API for coroutines
|
2002-11-06 17:08:00 -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 |
|
Roberto Ierusalimschy
|
565e6d74e1
|
state's buffer is used only for chars
|
2002-09-19 10:03:53 -03:00 |
|
Roberto Ierusalimschy
|
fdafd4f4a8
|
new structure for collectable objects, sharing a common header
|
2002-08-30 16:09:21 -03:00 |
|
Roberto Ierusalimschy
|
8e4ac679ff
|
use a linear count for count hook
|
2002-08-12 14:23:12 -03:00 |
|
Roberto Ierusalimschy
|
5016f43aa4
|
(much) cleaner way to control function states
|
2002-08-07 16:22:39 -03:00 |
|
Roberto Ierusalimschy
|
2e38c6ae5a
|
luadebug.h' content now is included in lua.h'
|
2002-08-06 15:01:50 -03:00 |
|
Roberto Ierusalimschy
|
a2fa48a570
|
new (old?) error handling scheme
|
2002-08-06 12:32:22 -03:00 |
|
Roberto Ierusalimschy
|
4e23699aa6
|
new implementation for error handling
|
2002-08-05 14:36:24 -03:00 |
|
Roberto Ierusalimschy
|
e5146fb01f
|
CallInfo has different fields for C functions and Lua functions
|
2002-07-16 11:26:56 -03:00 |
|
Roberto Ierusalimschy
|
44752fc9ce
|
hook count is quadratic
|
2002-07-08 17:22:08 -03:00 |
|
Roberto Ierusalimschy
|
39b2d58c39
|
new interface for debug hooks
|
2002-07-08 15:21:33 -03:00 |
|
Roberto Ierusalimschy
|
b30ec2532c
|
details
|
2002-07-02 13:43:28 -03:00 |
|
Roberto Ierusalimschy
|
01f1ac36b1
|
`global' tables (registry, etc.) stored in proper place, not in the stack
|
2002-05-08 14:34:23 -03:00 |
|
Roberto Ierusalimschy
|
383e8b9e77
|
use of a common `dummynode' for all empty tables
|
2002-04-23 12:04:39 -03:00 |
|
Roberto Ierusalimschy
|
c11d374c59
|
`panic' function configurable via API
|
2002-04-16 14:08:28 -03:00 |
|
Roberto Ierusalimschy
|
6c7334a9ac
|
line trace uses savedpc' to save last pc' seen
|
2002-04-10 09:11:07 -03:00 |
|
Roberto Ierusalimschy
|
81215cd59f
|
simpler way to control stack overflow
|
2002-03-26 17:46:10 -03:00 |
|
Roberto Ierusalimschy
|
801aaf37b1
|
simpler implementation for line information
|
2002-03-25 14:47:14 -03:00 |
|
Roberto Ierusalimschy
|
71c716e5a8
|
avoid C identifiers beginning with '_'
|
2002-03-11 09:45:00 -03:00 |
|
Roberto Ierusalimschy
|
6658b9588f
|
details
|
2002-03-07 15:11:51 -03:00 |
|
Roberto Ierusalimschy
|
b0a5e156b8
|
no more maximum stack size
|
2002-02-14 19:47:29 -02:00 |
|
Roberto Ierusalimschy
|
e01f5e6809
|
better order of record fields for 64-bit machines
|
2002-02-08 20:42:41 -02:00 |
|
Roberto Ierusalimschy
|
6bb5cb1cbd
|
comments
|
2002-02-05 20:37:26 -02:00 |
|
Roberto Ierusalimschy
|
d6fd33e76f
|
eventtable' renamed to metatable'
|
2002-01-30 15:26:44 -02:00 |
|
Roberto Ierusalimschy
|
50e2952593
|
first version of dynamic stack
|
2002-01-25 20:14:54 -02:00 |
|
Roberto Ierusalimschy
|
448517e47e
|
no more linehook field in CallInfo
|
2002-01-18 15:39:06 -02:00 |
|
Roberto Ierusalimschy
|
d56d4cf776
|
distinct functions to create/destroy states and threads
|
2002-01-11 18:26:52 -02:00 |
|
Roberto Ierusalimschy
|
f083812c02
|
first implementation of coroutines
|
2002-01-09 20:02:47 -02:00 |
|
Roberto Ierusalimschy
|
facfec0687
|
small optimizations
|
2002-01-03 15:42:57 -02:00 |
|
Roberto Ierusalimschy
|
e04f7ed450
|
first version of Lua "stackless"
|
2001-12-18 18:52:30 -02:00 |
|
Roberto Ierusalimschy
|
ed9be5e1f0
|
reentrant implementation of garbage collection
|
2001-12-11 14:52:57 -02:00 |
|
Roberto Ierusalimschy
|
592a309177
|
tag system replaced by event tables
|
2001-12-05 18:15:18 -02:00 |
|
Roberto Ierusalimschy
|
413fc7334b
|
new implementation for lua upvalues (sugested by E.T.): simpler and solves
a bug for multi-stacks
|
2001-11-29 18:22:22 -02:00 |
|
Roberto Ierusalimschy
|
617008f552
|
field G renamed to _G to avoid problemas with bugged macro-systems
(there is a macro named G too)
|
2001-11-06 19:40:51 -02:00 |
|