Roberto Ierusalimschy
|
4679294796
|
memory check adapted to generational mode
|
2017-04-18 16:42:12 -03:00 |
Roberto Ierusalimschy
|
f5f3df3bd1
|
generational collection: new attempt (still incomplete)
|
2017-02-23 18:07:34 -03:00 |
Roberto Ierusalimschy
|
b2aa2ba046
|
using constants for "_LOADED" and "PRELOAD"
|
2016-12-04 18:17:24 -02:00 |
Roberto Ierusalimschy
|
7b1fba69b7
|
using 'lastfree == NULL' to signal that table is using the dummy
node for its hash part + new macro 'allocsizenode'
|
2016-11-07 10:38:35 -02:00 |
Roberto Ierusalimschy
|
880f82d089
|
'*' as a number means stack size, so that "return *" returns
all values in the stack.
|
2015-10-12 13:38:19 -03:00 |
Roberto Ierusalimschy
|
53be1451a8
|
new definition for macro 'checkliveness'
|
2015-09-08 13:55:43 -03:00 |
Roberto Ierusalimschy
|
2de3361c6c
|
detail
|
2015-07-01 14:47:12 -03:00 |
Roberto Ierusalimschy
|
cbe05b48bb
|
using 'lua_longassert' to avoid warnings
|
2015-06-18 11:25:26 -03:00 |
Roberto Ierusalimschy
|
4998e852ec
|
new function 'log2' to test 'luaO_ceillog2' (if needed)
|
2015-04-02 18:10:21 -03:00 |
Roberto Ierusalimschy
|
331632e8d8
|
code detail ('if' -> '?:')
|
2015-03-13 13:24:50 -03:00 |
Roberto Ierusalimschy
|
0cf3b6495a
|
'ci_func' don't need to be exported
|
2015-03-11 13:10:41 -03:00 |
Roberto Ierusalimschy
|
7e2015a46d
|
size of short strings stored in a single byte, to reduce the size
of struct 'TString'
|
2015-01-16 14:54:37 -02:00 |
Roberto Ierusalimschy
|
77e786d436
|
stupid bug in T.stacklevel (not in use by the tests)
|
2014-12-18 10:13:42 -02:00 |
Roberto Ierusalimschy
|
741ad97e92
|
new parameter for testC instruction 'pcall' (error handler)
|
2014-12-10 09:30:51 -02:00 |
Roberto Ierusalimschy
|
177807f21e
|
casts ('(int)' -> 'cast_int')
|
2014-11-29 15:38:33 -02:00 |
Roberto Ierusalimschy
|
fd179ab4b8
|
clearer notation for "compare" instruction
|
2014-11-25 12:51:33 -02:00 |
Roberto Ierusalimschy
|
5bdfefd3a5
|
allows calling luaL_checkstack with no message (in runC)
|
2014-11-14 16:15:17 -02:00 |
Roberto Ierusalimschy
|
6624ccff26
|
independent code for 'printstack' + test for panic function can
ran code there
|
2014-11-11 15:15:06 -02:00 |
Roberto Ierusalimschy
|
79b0d05480
|
new function 'T.checkpanic' (to check panic errors)
|
2014-11-10 15:41:36 -02:00 |
Roberto Ierusalimschy
|
b6911c177d
|
luaL_loadbuffer replaced by luaL_loadstring (to test luaL_loadstring)
+ 'rawgetp'/'rawsetp' added to C interpreter
|
2014-11-10 12:47:29 -02:00 |
Roberto Ierusalimschy
|
a113e1498d
|
when checking thread consistency, check its entire stack (always
the entire stack must have valid values)
|
2014-11-07 16:07:17 -02:00 |
Roberto Ierusalimschy
|
28fdbcf393
|
added include for 'lprefix.h', for stuff that must be added before
any other header file
|
2014-11-02 17:19:04 -02:00 |
Roberto Ierusalimschy
|
4542fb9f78
|
comments (a few extra quotes around identifiers)
|
2014-10-30 16:53:28 -02:00 |
Roberto Ierusalimschy
|
7314acaa80
|
'T.limits' reports some more useful limits
|
2014-10-27 15:00:02 -02:00 |
Roberto Ierusalimschy
|
bdf566a8a3
|
`name' in comments changed to 'name'
|
2014-10-25 09:50:46 -02:00 |
Roberto Ierusalimschy
|
2a21f6c894
|
'lua_Kcontext' -> 'lua_KContext'
|
2014-10-07 15:29:13 -03:00 |
Roberto Ierusalimschy
|
e14a02c24f
|
when thread yields, real "func" is in field 'extra', not in 'func'
|
2014-10-06 14:06:49 -03:00 |
Roberto Ierusalimschy
|
798660c9cd
|
deprecated "cast macros" ('luaL_checkint', 'luaL_optint', etc.)
|
2014-10-01 08:54:56 -03:00 |
Roberto Ierusalimschy
|
3a15c7ce43
|
size for array part of a table ('sizearray') changed from 'int' to
'unsigned int', which allows twice as many elements in the array part
|
2014-09-04 15:15:29 -03:00 |
Roberto Ierusalimschy
|
22952d8973
|
'T.gccolor' classify dead objects too
|
2014-09-01 14:58:55 -03:00 |
Roberto Ierusalimschy
|
2be88d5084
|
'lua_Ctx' -> 'lua_Kcontext'
|
2014-08-01 14:33:08 -03:00 |
Roberto Ierusalimschy
|
73ad16b5c6
|
no need for type 'pCallInfo'
|
2014-07-23 13:44:30 -03:00 |
Roberto Ierusalimschy
|
3c6d0aaa7d
|
'iswhite' and related macros now can work directly on any object
(no need to convert to 'GCObject')
|
2014-07-19 12:14:46 -03:00 |
Roberto Ierusalimschy
|
bb12903120
|
type 'Udata' refers directly to structure inside the union (union
used only for aligning purposes now)
|
2014-07-18 11:46:47 -03:00 |
Roberto Ierusalimschy
|
ca41b43f53
|
type 'TString' refers directly to the structure inside the union
(union used only for size purposes)
|
2014-07-18 10:36:14 -03:00 |
Roberto Ierusalimschy
|
56137d58ff
|
added check for conversion 'obj2gco' (and corrections for small
problems detected by this check)
|
2014-07-18 09:17:54 -03:00 |
Roberto Ierusalimschy
|
9aec500a26
|
no need for field 'gch' anymore
|
2014-07-17 14:27:49 -03:00 |
Roberto Ierusalimschy
|
1aa4f69b51
|
new type 'lua_Ctx' for continuation-function contexts (to allow type
to be configurable)
|
2014-07-17 10:53:37 -03:00 |
Roberto Ierusalimschy
|
c229ed597f
|
'requiref' checks 'package.loaded' before loading a module
|
2014-07-16 11:51:36 -03:00 |
Roberto Ierusalimschy
|
a77d263e86
|
unsigned-manipulation functions (lua_puhsunsigned, lua_tounsigned, etc.)
deprecated
|
2014-06-26 15:38:28 -03:00 |
Roberto Ierusalimschy
|
d2ab1aef31
|
detail (avoid too large macro)
|
2014-06-19 15:29:30 -03:00 |
Roberto Ierusalimschy
|
3fc25ff15b
|
macro 'checkobjref' accepts NULL (as all its uses checked for NULL
before) + user value from a userdata may not be a GC object
|
2014-06-17 14:13:29 -03:00 |
Roberto Ierusalimschy
|
6f6fd96e3b
|
new type lua_KFunction + no more 'lua_getctx'
|
2014-06-10 14:41:38 -03:00 |
Roberto Ierusalimschy
|
5a5a834975
|
new API function 'lua_rotate'
|
2014-05-13 16:40:28 -03:00 |
Roberto Ierusalimschy
|
a09bd59615
|
'T.totalmem' accepts 0 for unlimited memory
|
2014-05-08 16:08:46 -03:00 |
Roberto Ierusalimschy
|
5c46b7b8cf
|
instructions in 'runC' sorted alphabetically + new instructions
'tointeger'/'tounsigned'
|
2014-04-14 15:42:44 -03:00 |
Roberto Ierusalimschy
|
c86b9da022
|
userdata can have any Lua value as uservalue
|
2014-02-19 10:52:42 -03:00 |
Roberto Ierusalimschy
|
3f78de256e
|
no need to keep threads in a different GC list, now that there is the
'twups' list
|
2014-02-18 10:46:26 -03:00 |
Roberto Ierusalimschy
|
ffa96d988d
|
field 'op' renamed to 'open'
|
2014-02-15 11:12:01 -02:00 |
Roberto Ierusalimschy
|
733c58595b
|
no more local collection
|
2014-02-13 10:11:34 -02:00 |
Roberto Ierusalimschy
|
ba3586cc90
|
keep a single list of objects to be finalized (with local and non-local
objects), to ensure finalization order
|
2014-02-11 10:18:12 -02:00 |
Roberto Ierusalimschy
|
1ea2d20f74
|
first implementation of '<<', '>>', and '~' (bitwise not)
|
2013-12-30 18:47:58 -02:00 |
Roberto Ierusalimschy
|
c0edab0f6d
|
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
|
2013-12-18 12:12:03 -02:00 |
Roberto Ierusalimschy
|
a948054a19
|
new order for binary operations (grouping them by type of result)
|
2013-12-16 17:06:52 -02:00 |
Roberto Ierusalimschy
|
4eeb1831be
|
new names and better order for GC states (sweep first lists that
can have dead objects)
|
2013-09-11 11:47:08 -03:00 |
Roberto Ierusalimschy
|
dd373a8f66
|
threads are kept in a separated GC list, linked after the main thread
|
2013-09-11 11:09:55 -03:00 |
Roberto Ierusalimschy
|
d8aa8dd97e
|
objects in list 'tobefnz' have a GC life-cycle like all others
(specifically they are cleaned during sweep phase)
|
2013-09-11 09:47:48 -03:00 |
Roberto Ierusalimschy
|
79ab21be90
|
more invariants added to memory check
|
2013-09-11 09:26:14 -03:00 |
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
|
0ad15fc100
|
better (and correct!) control of 'maybedead'
|
2013-09-04 12:34:24 -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
|
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
|
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
|
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
|
8f6b80aa1d
|
GC bits SEPARATED and FINALIZEDBIT mixed in FINALIZEDBIT (with simpler
control)
|
2013-08-20 14:46:34 -03:00 |
Roberto Ierusalimschy
|
8e6b7ef9ab
|
new function 'isgclocal' + test for GC consistency of prototype's caches
|
2013-08-19 11:16:33 -03:00 |
Roberto Ierusalimschy
|
caceeab750
|
'next' field for tables changed from pointer to integer (for better
alignment on 64-bit machines)
|
2013-08-18 13:12:18 -03:00 |
Roberto Ierusalimschy
|
3991312b94
|
details
|
2013-08-16 16:02:31 -03:00 |
Roberto Ierusalimschy
|
439d74e29f
|
added 'local' bit (true => object is only refered by local variables)
|
2013-08-16 15:55:49 -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
|
81102d3689
|
try to avoid warnings when converting int to pointer
|
2013-06-20 18:59:13 -03:00 |
Roberto Ierusalimschy
|
0ce3018109
|
'pushnum' pushes a "number" (float) + new C instruction 'pushint'
|
2013-05-07 16:01:16 -03:00 |
Roberto Ierusalimschy
|
a2f5c28a80
|
new operation '//' (integer division)
|
2013-04-26 10:08:29 -03:00 |
Roberto Ierusalimschy
|
52cb90ec75
|
detail
|
2013-04-24 16:41:48 -03:00 |
Roberto Ierusalimschy
|
75250a237c
|
typos in comments
|
2013-03-16 18:10:18 -03:00 |
Roberto Ierusalimschy
|
86b39206d9
|
open upvalues cannot be old if thread is not old; when thread is old,
their list is not traversed anymore, and therefore can contain dead
elements.
|
2012-10-03 09:36:46 -03:00 |
Roberto Ierusalimschy
|
a3e1c40d6d
|
remove of unecessary luaD_checkstack. (In some cases, C should
ensure stack space; in others, Lua can use the extra slots for
temporary values.)
|
2012-08-16 14:34:28 -03:00 |
Roberto Ierusalimschy
|
e4f609d0ee
|
collector in generational mode must be in 'propagate' state when
not running a collection
|
2012-07-04 12:52:38 -03:00 |
Roberto Ierusalimschy
|
5ac56a94dd
|
collector in generational mode should never be in 'pause' state
|
2012-07-02 12:38:36 -03:00 |
Roberto Ierusalimschy
|
43bfb60ac8
|
new auxiliary function 'luaI_printinst' (to print a single instruction)
|
2012-06-07 15:52:47 -03:00 |
Roberto Ierusalimschy
|
01e5f358bd
|
small improvement in lua_checkmemory (only allow dead objects in
part of the sweep list not yet sweeped)
|
2012-05-31 17:25:42 -03:00 |
Roberto Ierusalimschy
|
69c775de21
|
update of 'lua_checkmemory'
|
2012-05-30 13:40:29 -03:00 |
Roberto Ierusalimschy
|
3cadc37f47
|
no more 'Proto' objects on the stack. Protos are anchored on outer
Protos or on a Closure, which must be created before the Proto.
|
2012-05-08 10:53:33 -03: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
|
e0e406ead3
|
extra argument to instruction 'checkstack' (in 'testC')
|
2011-11-09 17:08:07 -02:00 |
Roberto Ierusalimschy
|
5645a84368
|
detail about 'trick' function (nil turn it off)
|
2011-09-24 18:11:29 -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
|
88c29c0cd5
|
compilation warning about integer size x pointer size
|
2011-07-02 12:59:17 -03:00 |
Roberto Ierusalimschy
|
29644366fc
|
useless assignments removed (macros already do the assignment)
|
2011-06-24 11:36:21 -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
|
aa13c591f5
|
avoid use of 'ifdef/ifndef'; use 'defined' instead (simpler and
more powerful)
|
2011-05-25 11:12:28 -03:00 |
Roberto Ierusalimschy
|
e4076fe6d9
|
break long assertion in two shorter ones
|
2011-05-05 13:18:53 -03:00 |
Roberto Ierusalimschy
|
19fbdf6cae
|
'luaL_findtable' -> 'luaL_getsubtable'
|
2011-04-08 16:17:36 -03:00 |
Roberto Ierusalimschy
|
75d8470f0f
|
new macro 'cast_uchar'
|
2010-12-10 11:40:22 -02:00 |
Roberto Ierusalimschy
|
9b7a12c46d
|
finalizers (__gc) for tables
|
2010-11-26 12:32:31 -02:00 |