Roberto Ierusalimschy
6d998055c8
no more reference 'memerrmsg' + new reference to "n"
(both can be retrieved by 'luaS_newliteral' without creating anything,
because they are fixed, but "n" deserves fast access while 'memerrmsg'
does not)
7 years ago
Roberto Ierusalimschy
f230898ad6
tiny code refactoring in 'luaS_hash'
9 years ago
Roberto Ierusalimschy
d356183402
new function 'luaS_hashlongstr'
9 years ago
Roberto Ierusalimschy
df45f7118b
detail (added assertion)
9 years ago
Roberto Ierusalimschy
9fae7b6d3f
code for string cache generalized for "associative sets" (compiler
will optimize away or inline the extra loops)
9 years ago
Roberto Ierusalimschy
ee5edb6b68
macros 'getaddrstr' and 'getstr' unified (they do the same thing)
9 years ago
Roberto Ierusalimschy
41964648ee
long strings are created directly in final position when possible
(instead of using an auxiliar buffer to first create the string
and then allocate the final string and copy result there)
9 years ago
Roberto Ierusalimschy
a5cbb7c3a7
detail (i + 1 > exp is simply i >= exp)
10 years ago
Roberto Ierusalimschy
6645bb2df4
'strcache' elements as arrays of 1 element hints that cache can
be n-way (instead of direct mapped)
10 years ago
Roberto Ierusalimschy
b436ed58a3
'clearapihash' -> 'luaS_clearcache' and moved to 'lstring.c' (which
keeps all code related to this cache)
10 years ago
Roberto Ierusalimschy
a80cada914
new cache for interning strings
10 years ago
Roberto Ierusalimschy
7e2015a46d
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
10 years ago
Roberto Ierusalimschy
28fdbcf393
added include for 'lprefix.h', for stuff that must be added before
any other header file
10 years ago
Roberto Ierusalimschy
17ee57f8e0
'iswhite' and related macros now can work directly on any object
(no need to convert to 'GCObject')
10 years ago
Roberto Ierusalimschy
bb12903120
type 'Udata' refers directly to structure inside the union (union
used only for aligning purposes now)
10 years ago
Roberto Ierusalimschy
ca41b43f53
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
10 years ago
Roberto Ierusalimschy
56137d58ff
added check for conversion 'obj2gco' (and corrections for small
problems detected by this check)
10 years ago
Roberto Ierusalimschy
14929f5764
use appropriate macros to convert GCObject to specific types
11 years ago
Roberto Ierusalimschy
f61ceee708
LUAI_FUNC is being used only in header files
11 years ago
Roberto Ierusalimschy
2f5f77788f
removed function 'luaS_eqstr' (not used anywhere)
11 years ago
Roberto Ierusalimschy
c86b9da022
userdata can have any Lua value as uservalue
11 years ago
Roberto Ierusalimschy
6ca7b63bce
check for shrinking string table done only at the end of a GC cycle
11 years ago
Roberto Ierusalimschy
1150873447
'luaC_newobj' does not handle special cases; only special case
now is threads, which do not use 'luaC_newobj' anymore.
11 years ago
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)
11 years ago
Roberto Ierusalimschy
9a871dd3db
tables and userdata all go to local list, too
11 years ago
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
11 years ago
Roberto Ierusalimschy
50955e27f5
C functions and strings now go to the local list; first version
of the local collector
11 years ago
Roberto Ierusalimschy
33c49f7fa0
some details over new implementation of string table
11 years ago
Roberto Ierusalimschy
ae800656c9
change in string table: string table is now independent of GC lists; all
strings live in 'normal' GC lists
11 years ago
Roberto Ierusalimschy
677d90165f
no more generational collection !!!
11 years ago
Roberto Ierusalimschy
130c0e40e0
new constant 'MAX_SIZE', distinct from 'MAX_SIZET', for sizes visible
from Lua; these must fit in a lua_Integer
12 years ago
Roberto Ierusalimschy
0730a56d38
detail
12 years ago
Roberto Ierusalimschy
84b6581287
cast to avoid warning in some compilers (size_t x unsigned int)
12 years ago
Roberto Ierusalimschy
c2361e0b61
definition for 'LUAI_MAXSHORTLEN' moved to luaconf.h (too important)
13 years ago
Roberto Ierusalimschy
cfbe2333a4
string hash may not use all bytes (but this is configurable now) +
small other changes
13 years ago
Roberto Ierusalimschy
678c1255c9
random seed used in the hash of all strings to avoid intentional
collisions
13 years ago
Roberto Ierusalimschy
a4b96ce9a3
first implementation of long strings
13 years ago
Roberto Ierusalimschy
291f564485
field 'reserved' -> 'extra' (may be used for other purposes too)
13 years ago
Roberto Ierusalimschy
ad2531a0ee
more complete (and hopefuly more correct) handling of 'sizeof(char)'
14 years ago
Roberto Ierusalimschy
1c1a98e872
corrected some places where an old object could end up in front
of a new one + minimal documentation about this problem
15 years ago
Roberto Ierusalimschy
f80ff7a336
'luaS_new' changed from macro to function
15 years ago
Roberto Ierusalimschy
0bbdddc86b
allocator function receives the tag of object being allocated in 'osize'
when 'ptr' is NULL.
15 years ago
Roberto Ierusalimschy
8da245bfd2
better to keep GC state numbers sequential, to optimize switch in
'singlestep'
15 years ago
Roberto Ierusalimschy
a2a2abcba4
new function 'luaC_runtilstate' to advance GC until a "valid" state
15 years ago
Roberto Ierusalimschy
ea44570883
hash table for strings is rehashed in place
16 years ago
Roberto Ierusalimschy
c6b442bd36
'luaM_freearray' does not need array type as argument
16 years ago
Roberto Ierusalimschy
e2b366c760
userdata with finalizers are kept in a separated list
17 years ago
Roberto Ierusalimschy
62790ab15d
detail
17 years ago
Roberto Ierusalimschy
3ca9af51a4
emergency garbage collector (core forces a GC when allocation fails)
19 years ago
Roberto Ierusalimschy
c505f341d6
small changes in casts
19 years ago