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
|
2013-08-27 17:04:00 -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
|
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
|
677d90165f
|
no more generational collection !!!
|
2013-08-05 13:58:28 -03:00 |
|
Roberto Ierusalimschy
|
130c0e40e0
|
new constant 'MAX_SIZE', distinct from 'MAX_SIZET', for sizes visible
from Lua; these must fit in a lua_Integer
|
2013-06-19 11:27:00 -03:00 |
|
Roberto Ierusalimschy
|
0730a56d38
|
detail
|
2013-01-08 12:06:55 -02:00 |
|
Roberto Ierusalimschy
|
84b6581287
|
cast to avoid warning in some compilers (size_t x unsigned int)
|
2012-10-02 14:41:50 -03:00 |
|
Roberto Ierusalimschy
|
c2361e0b61
|
definition for 'LUAI_MAXSHORTLEN' moved to luaconf.h (too important)
|
2012-05-11 11:14:42 -03:00 |
|
Roberto Ierusalimschy
|
cfbe2333a4
|
string hash may not use all bytes (but this is configurable now) +
small other changes
|
2012-03-28 15:28:25 -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
|
291f564485
|
field 'reserved' -> 'extra' (may be used for other purposes too)
|
2012-01-23 21:05:51 -02:00 |
|
Roberto Ierusalimschy
|
ad2531a0ee
|
more complete (and hopefuly more correct) handling of 'sizeof(char)'
|
2011-05-03 13:01:57 -03:00 |
|
Roberto Ierusalimschy
|
1c1a98e872
|
corrected some places where an old object could end up in front
of a new one + minimal documentation about this problem
|
2010-05-10 15:23:45 -03:00 |
|
Roberto Ierusalimschy
|
f80ff7a336
|
'luaS_new' changed from macro to function
|
2010-04-03 17:24:18 -03:00 |
|
Roberto Ierusalimschy
|
0bbdddc86b
|
allocator function receives the tag of object being allocated in 'osize'
when 'ptr' is NULL.
|
2009-12-17 13:46:44 -02:00 |
|
Roberto Ierusalimschy
|
8da245bfd2
|
better to keep GC state numbers sequential, to optimize switch in
'singlestep'
|
2009-12-11 19:31:14 -02:00 |
|
Roberto Ierusalimschy
|
a2a2abcba4
|
new function 'luaC_runtilstate' to advance GC until a "valid" state
|
2009-12-11 17:14:59 -02:00 |
|
Roberto Ierusalimschy
|
ea44570883
|
hash table for strings is rehashed in place
|
2009-04-29 14:09:41 -03:00 |
|
Roberto Ierusalimschy
|
c6b442bd36
|
'luaM_freearray' does not need array type as argument
|
2009-04-17 11:40:13 -03:00 |
|
Roberto Ierusalimschy
|
e2b366c760
|
userdata with finalizers are kept in a separated list
|
2008-02-19 15:55:09 -03:00 |
|
Roberto Ierusalimschy
|
62790ab15d
|
detail
|
2007-11-09 16:55:07 -02:00 |
|
Roberto Ierusalimschy
|
3ca9af51a4
|
emergency garbage collector (core forces a GC when allocation fails)
|
2006-07-11 12:53:29 -03:00 |
|
Roberto Ierusalimschy
|
c505f341d6
|
small changes in casts
|
2005-12-22 14:19:56 -02:00 |
|
Roberto Ierusalimschy
|
7d45a5f48f
|
C functions and userdata also have environments
|
2005-02-18 10:40:02 -02:00 |
|
Roberto Ierusalimschy
|
334ba8132b
|
cleaner way to remark open upvalues
|
2005-01-18 15:18:09 -02:00 |
|
Roberto Ierusalimschy
|
1d99a7360b
|
details
|
2004-11-24 17:16:03 -02:00 |
|
Roberto Ierusalimschy
|
6f1ea817f5
|
better control over memory-size overflows
|
2004-11-19 13:52:40 -02:00 |
|
Roberto Ierusalimschy
|
32d4f304db
|
first implementation of generational GC
|
2004-08-24 17:12:06 -03:00 |
|
Roberto Ierusalimschy
|
b4cd38ba6c
|
new scheme for configuration through `luaconf.h'
|
2004-04-30 17:13:38 -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
|
df429f163a
|
First version of incremental GC
|
2003-12-09 14:56:11 -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
|
ab7d9bfd0c
|
cleaner code for manipulation of `marked' field
|
2003-11-17 17:50:05 -02:00 |
|
Roberto Ierusalimschy
|
572a69df78
|
Lua does not need all those different types...
|
2003-04-28 16:26:16 -03:00 |
|
Roberto Ierusalimschy
|
27c6b4d422
|
each .c file defines its own name
|
2002-12-04 15:38:31 -02:00 |
|
Roberto Ierusalimschy
|
2f91f95d94
|
better control over GCObjects
|
2002-11-13 09:32:26 -02:00 |
|
Roberto Ierusalimschy
|
fdafd4f4a8
|
new structure for collectable objects, sharing a common header
|
2002-08-30 16:09:21 -03:00 |
|
Roberto Ierusalimschy
|
da19c436cc
|
cleaning the stage for generational collection
|
2002-08-16 11:45:55 -03:00 |
|
Roberto Ierusalimschy
|
237969724f
|
support for light' userdata + simpler support for boxed' udata
|
2002-04-05 15:54:31 -03:00 |
|
Roberto Ierusalimschy
|
5023aaee0a
|
reserve one more bit for GC
|
2002-03-20 15:37:13 -03:00 |
|
Roberto Ierusalimschy
|
d3651c1d88
|
`getstr' now gives const char *
|
2002-02-08 20:41:09 -02:00 |
|
Roberto Ierusalimschy
|
d6fd33e76f
|
eventtable' renamed to metatable'
|
2002-01-30 15:26:44 -02:00 |
|
Roberto Ierusalimschy
|
b7ae43d457
|
detail
|
2002-01-11 18:23:01 -02:00 |
|
Roberto Ierusalimschy
|
592a309177
|
tag system replaced by event tables
|
2001-12-05 18:15:18 -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
|
e1d072571e
|
better syntax for type casts
|
2001-08-31 16:46:07 -03:00 |
|
Roberto Ierusalimschy
|
c3d72096c4
|
use a table to find (and reuse) constants when parsing
|
2001-08-27 12:16:28 -03:00 |
|
Roberto Ierusalimschy
|
8e586c13fc
|
cleaner way to ensure alignment for strings and userdata
|
2001-06-15 17:36:57 -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
|
dd3a63c205
|
new way to handle `profiles'
|
2001-03-26 11:31:49 -03:00 |
|
Roberto Ierusalimschy
|
39b7978329
|
first (big) step to support wide chars
|
2001-02-23 14:17:25 -03:00 |
|
Roberto Ierusalimschy
|
52ee91dd73
|
better encapsulation of some types
|
2001-02-22 14:15:18 -03:00 |
|
Roberto Ierusalimschy
|
099442c41f
|
better separation between basic types
|
2001-02-20 15:15:33 -03:00 |
|
Roberto Ierusalimschy
|
03d8a9bf0d
|
details
|
2001-02-09 18:29:33 -02:00 |
|
Roberto Ierusalimschy
|
d2e340f467
|
string pointers are always fully aligned
|
2001-02-09 18:22:29 -02:00 |
|
Roberto Ierusalimschy
|
6875fdc8be
|
new semantics for pushuserdata (no more different userdatas with same value)
|
2001-02-09 17:53:16 -02:00 |
|
Roberto Ierusalimschy
|
e506b864cd
|
no need for tags in boxed values :-(
|
2001-02-01 15:40:48 -02:00 |
|
Roberto Ierusalimschy
|
6858763994
|
bug in lua_pushuserdata(L, NULL)
|
2001-02-01 11:56:49 -02:00 |
|
Roberto Ierusalimschy
|
63a822c8e1
|
all boxed types start with their tags
|
2001-01-29 17:34:02 -02:00 |
|
Roberto Ierusalimschy
|
b82242d4c4
|
detail
|
2001-01-26 13:58:50 -02:00 |
|
Roberto Ierusalimschy
|
4ac58853dc
|
thead-specific state separated from "global" state
|
2001-01-19 11:20:30 -02:00 |
|
Roberto Ierusalimschy
|
321c7fb6f8
|
details
|
2001-01-11 16:59:20 -02:00 |
|
Roberto Ierusalimschy
|
08496eea8b
|
small changes in lstring
|
2001-01-10 15:41:50 -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
|
0066bbbb0b
|
details
|
2000-12-22 14:57:46 -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
|
d1c689af40
|
subtelties in layout of TString
|
2000-10-30 15:49:19 -02:00 |
|
Roberto Ierusalimschy
|
b892f0a877
|
new API function `createuserdata'
|
2000-10-26 10:47:05 -02: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
|
e238efc536
|
default now is multi-state
|
2000-08-09 16:16:57 -03:00 |
|
Roberto Ierusalimschy
|
435f587ed0
|
(much) better handling of memory alloction errors
|
2000-08-04 16:38:35 -03:00 |
|
Roberto Ierusalimschy
|
cfba572076
|
remove dummy argument in LUA_ASSERT
|
2000-06-30 11:35:17 -03:00 |
|
Roberto Ierusalimschy
|
18b0e8270d
|
32 characteres are more than enough for a good hash
|
2000-06-15 14:01:12 -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
|
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
|
73aa465a8e
|
some name changes
|
2000-03-10 15:37:44 -03:00 |
|
Roberto Ierusalimschy
|
3d0577f4b9
|
small optimizations.
|
2000-03-10 11:38:10 -03:00 |
|
Roberto Ierusalimschy
|
3c9d999424
|
many details (most by lhf).
|
2000-03-03 11:58:26 -03:00 |
|
Roberto Ierusalimschy
|
12b45c2df2
|
luaS_newfixedstring renamed to luaS_newfixed
|
1999-12-14 16:42:57 -02:00 |
|
Roberto Ierusalimschy
|
d015f1fc02
|
table sizes don't need to be primes; power of 2 gives the same performance.
|
1999-11-26 16:59:20 -02:00 |
|
Roberto Ierusalimschy
|
514783de9d
|
simpler without `init_hash'
|
1999-11-22 16:24:50 -02:00 |
|
Roberto Ierusalimschy
|
29ede6aa13
|
first implementation of multiple states (reentrant code).
|
1999-11-22 11:12:07 -02:00 |
|
Roberto Ierusalimschy
|
d915cf4f9d
|
ways to measure number of `blocks' for GC + details
|
1999-11-10 13:39:35 -02:00 |
|
Roberto Ierusalimschy
|
cde179b369
|
new implementation for global variable values (separated from strings)
|
1999-11-04 15:23:12 -02:00 |
|
Roberto Ierusalimschy
|
910836fb53
|
warnings from Visual C++
|
1999-10-19 11:33:22 -02:00 |
|
Roberto Ierusalimschy
|
4e9f2d13d5
|
new implementation of hash tables.
|
1999-10-14 17:13:31 -02:00 |
|
Roberto Ierusalimschy
|
c5fee7615e
|
new implementation for string hashing, with chaining.
|
1999-10-11 14:13:42 -02:00 |
|
Roberto Ierusalimschy
|
4343420d4d
|
simplified version of `gc' tag method (only for userdata now).
|
1999-10-04 15:51:04 -02:00 |
|
Roberto Ierusalimschy
|
e2fc5aa684
|
checks table size only when element is a new one
|
1999-09-28 09:27:06 -03:00 |
|
Roberto Ierusalimschy
|
c787dccd9b
|
"const" !!!
|
1999-08-16 17:52:00 -03:00 |
|
Roberto Ierusalimschy
|
b678e465a1
|
warnings in Solaris
|
1999-02-26 12:49:53 -03:00 |
|
Roberto Ierusalimschy
|
7bdbd833b5
|
userdata and strings are kept in separate stringtables
|
1999-02-08 14:28:48 -02:00 |
|