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 |
|
Roberto Ierusalimschy
|
6fb0fd5063
|
avoid `reclearing' weak tables
|
2002-09-19 16:54:22 -03:00 |
|
Roberto Ierusalimschy
|
afe1305b1a
|
avoid luaS_resize (which may need extra memory) during `main' activities
|
2002-09-05 16:57:40 -03:00 |
|
Roberto Ierusalimschy
|
4964e7c8a0
|
details
|
2002-09-02 16:54:49 -03:00 |
|
Roberto Ierusalimschy
|
fdafd4f4a8
|
new structure for collectable objects, sharing a common header
|
2002-08-30 16:09:21 -03:00 |
|
Roberto Ierusalimschy
|
ecc7769de2
|
names...
|
2002-08-16 17:00:28 -03:00 |
|
Roberto Ierusalimschy
|
da19c436cc
|
cleaning the stage for generational collection
|
2002-08-16 11:45:55 -03:00 |
|
Roberto Ierusalimschy
|
634344d61f
|
new API for weak mode
|
2002-08-06 14:06:56 -03:00 |
|
Roberto Ierusalimschy
|
5037196f6f
|
new macros `ttis*'
|
2002-08-05 11:50:39 -03:00 |
|
Roberto Ierusalimschy
|
79c8edb6c4
|
new names for light userdata operations
|
2002-07-17 13:25:13 -03:00 |
|
Roberto Ierusalimschy
|
39b2d58c39
|
new interface for debug hooks
|
2002-07-08 15:21:33 -03:00 |
|
Roberto Ierusalimschy
|
1ede98157d
|
strings are always `strong' in weaktables
|
2002-07-04 14:58:02 -03:00 |
|
Roberto Ierusalimschy
|
9f4b5b5232
|
weak keys are removed only after finalization
|
2002-07-01 14:06:58 -03:00 |
|
Roberto Ierusalimschy
|
9d6556fd87
|
userdata are removed from weaktables before invoking their GC fallbacks
|
2002-06-25 16:17:42 -03:00 |
|
Roberto Ierusalimschy
|
2394604d10
|
assertion may fail when closing a state
|
2002-06-24 14:19:43 -03:00 |
|
Roberto Ierusalimschy
|
3941af53ad
|
first implementation of independent global table per function
|
2002-06-20 17:41:46 -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
|
237969724f
|
support for light' userdata + simpler support for boxed' udata
|
2002-04-05 15:54:31 -03:00 |
|
Roberto Ierusalimschy
|
0b9b53e21c
|
details
|
2002-03-26 15:55:50 -03:00 |
|
Roberto Ierusalimschy
|
19ac0fadc9
|
don't need to mark the stacks twice ;-)
|
2002-03-20 15:54:29 -03:00 |
|
Roberto Ierusalimschy
|
ca2ceef659
|
simpler solution for finalizing udata
|
2002-03-20 15:37:28 -03:00 |
|
Roberto Ierusalimschy
|
8f837e83b2
|
using `ci->top' to control acceptable indices in C calls
|
2002-03-07 15:14:29 -03:00 |
|
Roberto Ierusalimschy
|
457d88eaaa
|
configurable minimum size for the string table
|
2002-03-05 13:22:54 -03:00 |
|
Roberto Ierusalimschy
|
1a3f175640
|
small optimization
|
2002-03-04 18:32:34 -03: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
|
d56d4cf776
|
distinct functions to create/destroy states and threads
|
2002-01-11 18:26:52 -02:00 |
|
Roberto Ierusalimschy
|
b3bb0f132b
|
new interface for weak modes
|
2002-01-09 19:50:35 -02:00 |
|
Roberto Ierusalimschy
|
e04f7ed450
|
first version of Lua "stackless"
|
2001-12-18 18:52:30 -02:00 |
|
Roberto Ierusalimschy
|
21259a50e1
|
run GC tag methods in protected mod
|
2001-12-12 15:47:33 -02:00 |
|
Roberto Ierusalimschy
|
9aff171f3b
|
new type `boolean'
|
2001-12-11 20:48:44 -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
|
72659a0605
|
no more explicit support for wide-chars; too much troble...
|
2001-11-28 18:13:13 -02:00 |
|
Roberto Ierusalimschy
|
26bf2adace
|
optimizations for space in LClosures and time cleanning weak tables
|
2001-11-06 19:41:53 -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
|
21aa7e55f2
|
optimization for array part of a Table
|
2001-10-25 17:14:14 -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
|
15462edb0f
|
new definitions for closure structures
|
2001-10-02 13:45:03 -03:00 |
|
Roberto Ierusalimschy
|
abdbe883a8
|
first implementation of unrestricted static scoping
|
2001-09-07 14:39:10 -03:00 |
|
Roberto Ierusalimschy
|
e1d072571e
|
better syntax for type casts
|
2001-08-31 16:46:07 -03:00 |
|
Roberto Ierusalimschy
|
770954510f
|
rename of kproto' to p'
|
2001-06-28 11:57:17 -03:00 |
|
Roberto Ierusalimschy
|
37f3a1c045
|
too much optimization to "break" keys in tables; keep them as TObjects...
|
2001-06-26 10:20:45 -03:00 |
|
Roberto Ierusalimschy
|
777061e441
|
resurect userdata before calling its GC tag method
|
2001-06-21 13:41:34 -03:00 |
|
Roberto Ierusalimschy
|
8e586c13fc
|
cleaner way to ensure alignment for strings and userdata
|
2001-06-15 17:36:57 -03:00 |
|
Roberto Ierusalimschy
|
eadf2aaaff
|
small optimizations
|
2001-06-15 16:17:33 -03:00 |
|
Roberto Ierusalimschy
|
a3fbf5f5fd
|
details
|
2001-06-13 15:51:20 -03:00 |
|
Roberto Ierusalimschy
|
89e8303f4e
|
more robust treatment of GC tag methods (now they can create new
objects while running...)
|
2001-06-12 15:43:13 -03:00 |
|
Roberto Ierusalimschy
|
cbc59592ff
|
new definition for luaD_call' and luaD_adjusttop'
|
2001-06-08 16:01:38 -03:00 |
|
Roberto Ierusalimschy
|
ba11831d35
|
smaller structs for udata and for strings
|
2001-06-07 12:01:21 -03:00 |
|
Roberto Ierusalimschy
|
d5b83ead90
|
new implementation for userdatas, without `keys'
|
2001-06-06 15:00:19 -03:00 |
|
Roberto Ierusalimschy
|
943b8f5b18
|
details
|
2001-06-05 16:41:24 -03:00 |
|
Roberto Ierusalimschy
|
762d059a13
|
new implementation for the Virtual Machine
|
2001-06-05 15:17:01 -03:00 |
|
Roberto Ierusalimschy
|
beee01b170
|
re-implementation of refs through weak tables
|
2001-04-17 14:35:54 -03:00 |
|
Roberto Ierusalimschy
|
0e0e4a480e
|
first implementation for weak tables
|
2001-04-11 11:42:41 -03:00 |
|
Roberto Ierusalimschy
|
dd3a63c205
|
new way to handle `profiles'
|
2001-03-26 11:31:49 -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
|
39b7978329
|
first (big) step to support wide chars
|
2001-02-23 14:17:25 -03:00 |
|
Roberto Ierusalimschy
|
5f37134e64
|
avoid '...' and "..." inside comments
|
2001-02-22 15:59:59 -03:00 |
|
Roberto Ierusalimschy
|
888f91fa24
|
code check for upvalues
|
2001-02-20 15:28:11 -03:00 |
|
Roberto Ierusalimschy
|
099442c41f
|
better separation between basic types
|
2001-02-20 15:15:33 -03:00 |
|
Roberto Ierusalimschy
|
7178a5e34a
|
new way to handle top x L->top
|
2001-02-07 16:13:49 -02:00 |
|
Roberto Ierusalimschy
|
1f9e3731d1
|
back to the basics (well-behaved variant record...)
|
2001-02-02 14:32:00 -02:00 |
|
Roberto Ierusalimschy
|
42224ca553
|
loop of 'dostring' may never reclaim memory
|
2001-02-02 14:23:20 -02: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
|
63a822c8e1
|
all boxed types start with their tags
|
2001-01-29 17:34:02 -02:00 |
|
Roberto Ierusalimschy
|
6b71a9cfe5
|
smaller tables for machines with 8-bit alignment
|
2001-01-29 15:17:26 -02:00 |
|
Roberto Ierusalimschy
|
9b45439860
|
details
|
2001-01-26 12:16:24 -02:00 |
|
Roberto Ierusalimschy
|
7959f3aebb
|
easier way to erase 'dead' keys
|
2001-01-26 11:18:00 -02:00 |
|
Roberto Ierusalimschy
|
a53d9b66ca
|
first implementation for type names
|
2001-01-25 14:45:36 -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
|
f2c451d745
|
all accesses to TObjects done through macros
|
2001-01-18 13:59:09 -02:00 |
|
Roberto Ierusalimschy
|
0183b8030c
|
`free' gets size of the block: complete control over memory use
|
2000-12-28 10:55:41 -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
|
b892f0a877
|
new API function `createuserdata'
|
2000-10-26 10:47:05 -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
|
001f2bdd0e
|
new definition for types-tags
|
2000-10-05 09:14:08 -03:00 |
|
Roberto Ierusalimschy
|
78bc8e553d
|
new API for garbage collector
|
2000-10-02 11:47:43 -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
|
c9c6f9747c
|
GC may crash when checking C closures
|
2000-09-25 11:52:10 -03:00 |
|
Roberto Ierusalimschy
|
5ed3bcd4ea
|
warnings in Solaris
|
2000-09-19 05:42:35 -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
|
c85162be27
|
new way to store local-variable information.
|
2000-08-22 14:44:17 -03:00 |
|
Roberto Ierusalimschy
|
e238efc536
|
default now is multi-state
|
2000-08-09 16:16:57 -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
|
d9e61e8cea
|
new algorithm for traversing in GC to avoid deep recursion calls
|
2000-08-07 17:21:34 -03:00 |
|
Roberto Ierusalimschy
|
cfba572076
|
remove dummy argument in LUA_ASSERT
|
2000-06-30 11:35:17 -03:00 |
|
Roberto Ierusalimschy
|
afef009fce
|
new version of debug system
|
2000-06-26 16:28:31 -03:00 |
|
Roberto Ierusalimschy
|
1de5587184
|
`lua.h' is included before any other Lua header file
|
2000-06-12 10:52:05 -03:00 |
|
Roberto Ierusalimschy
|
8ca9534d04
|
access to `values' in TObject always through macros
|
2000-06-08 15:27:13 -03:00 |
|
Roberto Ierusalimschy
|
c542aac0b9
|
collect dead indices in tables
|
2000-06-05 17:07:53 -03:00 |
|
Roberto Ierusalimschy
|
dbfb810267
|
cleansing of lparser.c
|
2000-06-05 11:56:18 -03:00 |
|
Roberto Ierusalimschy
|
7e30900def
|
better field name
|
2000-05-30 16:00:31 -03:00 |
|
Roberto Ierusalimschy
|
50a82ec1b9
|
gc tag methods for udata are called in (reverse) tag order
|
2000-05-30 15:54:49 -03:00 |
|