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 |
|
Roberto Ierusalimschy
|
af59848219
|
tables of globals accessible through pseudo-index in C API
|
2001-10-31 17:58:11 -02:00 |
|
Roberto Ierusalimschy
|
0b551a24f8
|
Hash' -> Table'
|
2001-10-25 17:12:21 -02:00 |
|
Roberto Ierusalimschy
|
1e81da51ba
|
new API for registry and C upvalues + new implementation for references
|
2001-10-17 19:12:57 -02:00 |
|
Roberto Ierusalimschy
|
b840a7518d
|
details
|
2001-10-02 13:43:29 -03:00 |
|
Roberto Ierusalimschy
|
abdbe883a8
|
first implementation of unrestricted static scoping
|
2001-09-07 14:39:10 -03:00 |
|
Roberto Ierusalimschy
|
ae19b2f51e
|
more relaxed rules for syncronized access
|
2001-06-15 16:16:41 -03:00 |
|
Roberto Ierusalimschy
|
d5b83ead90
|
new implementation for userdatas, without `keys'
|
2001-06-06 15:00:19 -03:00 |
|
Roberto Ierusalimschy
|
beee01b170
|
re-implementation of refs through weak tables
|
2001-04-17 14:35:54 -03:00 |
|
Roberto Ierusalimschy
|
6048c4f74d
|
better way to link callinfo's and stack
|
2001-03-07 15:09:25 -03:00 |
|
Roberto Ierusalimschy
|
7b84f9e65c
|
lower-case for macros with arguments
|
2001-03-02 14:27:50 -03:00 |
|
Roberto Ierusalimschy
|
dfd7ce74cf
|
buffer should be void *, as char now is not that neutral...
|
2001-02-23 17:32:16 -03:00 |
|
Roberto Ierusalimschy
|
39b7978329
|
first (big) step to support wide chars
|
2001-02-23 14:17:25 -03:00 |
|
Roberto Ierusalimschy
|
099442c41f
|
better separation between basic types
|
2001-02-20 15:15:33 -03:00 |
|
Roberto Ierusalimschy
|
426d3e43bd
|
lock/unlock may use L + better structure for internal debug stuff
|
2001-02-02 13:13:05 -02:00 |
|
Roberto Ierusalimschy
|
e506b864cd
|
no need for tags in boxed values :-(
|
2001-02-01 15:40:48 -02:00 |
|
Roberto Ierusalimschy
|
bce6572579
|
new macros + new names to facilitate compilation of threaded version
|
2001-01-26 09:45:51 -02:00 |
|
Roberto Ierusalimschy
|
a53d9b66ca
|
first implementation for type names
|
2001-01-25 14:45:36 -02:00 |
|
Roberto Ierusalimschy
|
71ae4801d6
|
macros LUA_ENTRY/LUA_EXIT to control exclusive access to Lua core
|
2001-01-24 13:45:33 -02:00 |
|
Roberto Ierusalimschy
|
6fda6a5302
|
support for multiple stacks sharing the same global environment
|
2001-01-22 16:01:38 -02:00 |
|
Roberto Ierusalimschy
|
4ac58853dc
|
thead-specific state separated from "global" state
|
2001-01-19 11:20:30 -02:00 |
|
Roberto Ierusalimschy
|
8c49e19865
|
explicit control of size for growing vectors
|
2000-12-26 16:46:09 -02:00 |
|
Roberto Ierusalimschy
|
96253ed8ce
|
better support for 64-bit machines (avoid excessive use of longs)
|
2000-11-24 15:39:56 -02:00 |
|
Roberto Ierusalimschy
|
046a3d6173
|
tag methods are always functions, so don't need to store a whole object
|
2000-10-05 10:00:17 -03:00 |
|
Roberto Ierusalimschy
|
dad808a73a
|
new way to count `nblocks' for GC (try to count bytes).
|
2000-09-29 09:42:13 -03:00 |
|
Roberto Ierusalimschy
|
13635f7de7
|
new version of protected execution
|
2000-09-25 13:22:42 -03:00 |
|
Roberto Ierusalimschy
|
787a78f83e
|
new scheme for buffers
|
2000-09-11 14:38:42 -03:00 |
|
Roberto Ierusalimschy
|
9fdf73bc9a
|
first version for new API
|
2000-08-28 14:57:04 -03:00 |
|
Roberto Ierusalimschy
|
0802a9df9e
|
no more options for debug information: it is always on
|
2000-08-08 17:42:07 -03:00 |
|
Roberto Ierusalimschy
|
397905ef86
|
(much) better handling of memory alloction errors
|
2000-08-07 15:39:16 -03:00 |
|
Roberto Ierusalimschy
|
ef62b340e0
|
code cleaner for 16 bits.
|
2000-05-24 10:54:49 -03:00 |
|
Roberto Ierusalimschy
|
330e51bed3
|
string hash uses one single hash table
|
2000-05-10 13:33:20 -03:00 |
|
Roberto Ierusalimschy
|
11a7022067
|
global variables are stored in a Lua table
|
2000-05-08 16:32:53 -03:00 |
|
Roberto Ierusalimschy
|
556a89e537
|
new names for debug types
|
2000-03-30 14:19:48 -03:00 |
|