Commit Graph
100 Commits
Author SHA1 Message Date
Roberto Ierusalimschy de84b3fecb store number of upvalues of main function in front of the dump,
so that undump can create initial closure before reading its prototype
2014-02-27 15:56:15 -03:00
Roberto Ierusalimschy 054179c2ff more explicit handling of headers for binary chunks 2014-02-27 13:56:20 -03:00
Roberto Ierusalimschy 986c11daa6 removal of weird construction in definition of LUA_STRFTIMEOPTIONS
(two empty strings concatenated as in "" "")
2014-02-26 12:55:58 -03:00
Roberto Ierusalimschy c6c41e85b2 more uniformity for defining system-dependent features 2014-02-26 12:27:56 -03:00
Roberto Ierusalimschy 87c930676f detail (comments) 2014-02-26 09:39:30 -03:00
Roberto Ierusalimschy 11e762dbcd added macro MAX_UINTEGER 2014-02-26 09:38:43 -03:00
Roberto Ierusalimschy 5c9cb5f0b1 detail (comment) 2014-02-26 09:38:18 -03:00
Roberto Ierusalimschy fed236ca7f detail (unknown lines are marked as -1, not 0) 2014-02-25 11:31:16 -03:00
Roberto Ierusalimschy 295f7ac04e added 'stip' parameter to lua_dump/string.dump 2014-02-25 11:30:21 -03:00
Roberto Ierusalimschy 6318de80d3 added 'strip' parameter to lua_dump/string.dump 2014-02-25 11:30:21 -03:00
Roberto Ierusalimschy 5715de344f 'read_all' does not need to grow buffer, as 'luaL_prepbuffsize'
already does that
2014-02-21 11:39:50 -03:00
Roberto Ierusalimschy c86b9da022 userdata can have any Lua value as uservalue 2014-02-19 10:52:42 -03:00
Roberto Ierusalimschy a4c6dcf999 detail (better error messages for light userdata) 2014-02-19 10:48:53 -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 d764cc5522 new list 'twups' to allow traversal of upvalues from dead threads
(+ fixed some problems with cycles involving those upvalues)
2014-02-18 10:39:37 -03:00
Roberto Ierusalimschy ffa96d988d field 'op' renamed to 'open' 2014-02-15 11:12:01 -02:00
Roberto Ierusalimschy 6a24bd17a8 no more second result from 'collectgarbage"count"' (as Lua seldom
will need lua_Number to be an integer)
2014-02-14 14:45:38 -02:00
Roberto Ierusalimschy 1cce3e6842 change in the way 'collectgarbage("step", size)' interprets 'size'
(mimicking the way the GC itself behaves when Lua allocates 'size'
Kbytes)
2014-02-14 14:43:14 -02:00
Roberto Ierusalimschy 0b04c561f5 new syntax for Unicode escape '\u{012F}' 2014-02-14 13:23:51 -02:00
Roberto Ierusalimschy 90b0ac6495 limit to 'gcstepmul' imposed by 'lua_gc' (+ some details in 'lgc.c') 2014-02-13 15:25:20 -02:00
Roberto Ierusalimschy de3b1c9b53 better control for number of finalizers called at each GC cycle
(increases progressively)
2014-02-13 12:46:38 -02:00
Roberto Ierusalimschy 733c58595b no more local collection 2014-02-13 10:11:34 -02:00
Roberto Ierusalimschy 4a1ed6e6e5 new field '__name' in metatables to help better error messages 2014-02-11 15:39:15 -02:00
Roberto Ierusalimschy 6b30774469 detail (better presentation for 'luaC_step') 2014-02-11 10:28:47 -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 68df7c6279 added proper headers for a standard lib file 2014-02-06 18:03:24 -02:00
Roberto Ierusalimschy 19ad78d713 C++ needs casts for arithmetic with enums 2014-02-06 17:55:55 -02:00
Roberto Ierusalimschy 6ccf150039 new library: utf8 2014-02-06 15:32:33 -02:00
Roberto Ierusalimschy 4ea60463f5 UTF-8 encoding exported as format '%U' in 'lua_pushfstring' 2014-02-06 13:59:24 -02:00
Roberto Ierusalimschy d438e1379d insertion of ".0" in floats with integer values done by "luaL_tolstring",
not by the core
2014-02-05 17:14:53 -02:00
Roberto Ierusalimschy 1721d09ac8 still accepts initial '=' for expressions, for compatibility with old
versions (and old habits...)
2014-02-05 12:22:55 -02:00
Roberto Ierusalimschy 2f3da00e51 added support for UTF-8 escapes 2014-02-04 16:57:34 -02:00
Roberto Ierusalimschy 5a73e3ad9e simpler way to create messages for errors in escape sequences 2014-01-31 13:14:22 -02:00
Roberto Ierusalimschy 86dd8bf3f5 no more 'L' in macros "luai_num*" (several places that use those macros
cannot throw errors anyway...)
2014-01-27 11:34:32 -02:00
Roberto Ierusalimschy 67c5de9283 comment 2014-01-27 11:28:45 -02:00
Roberto Ierusalimschy 0a850e641d larger limit + better error messages for loop detection in inheritance 2014-01-22 18:02:04 -02:00
Roberto Ierusalimschy 916bd874ad added explicit default options to string.pack/unpack functions 2014-01-09 14:21:28 -02:00
Roberto Ierusalimschy cd848cab6b first implementation for string.pack/unpackfloat + try not to assume
that chars have 8 bits
2014-01-08 16:34:34 -02:00
Roberto Ierusalimschy 29256e8960 first implementation of string.packint/string.unpackint 2014-01-05 12:05:58 -02:00
Roberto Ierusalimschy 438c534ff4 'arg' arguments (previously called 'narg', 'nArg', 'numArg', etc.)
renamed all to 'arg'
2014-01-05 12:04:46 -02:00
Roberto Ierusalimschy 1ea2d20f74 first implementation of '<<', '>>', and '~' (bitwise not) 2013-12-30 18:47:58 -02:00
Roberto Ierusalimschy f5133aa1a5 small change in handling of unary operations 2013-12-18 16:44:42 -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 a8f8c7fd80 integer exponentiation with negative exponent is invalid 2013-12-16 12:30:22 -02:00
Roberto Ierusalimschy 1a19893d6f new "calculator mode"; no need to add '=' to print expressions 2013-12-16 12:27:17 -02:00
Roberto Ierusalimschy 88e23f508c details 2013-12-13 13:42:08 -02:00
Roberto Ierusalimschy c8585efc78 use goto to implement a tail call in 'reallymarkobject' 2013-12-13 13:17:00 -02:00
Roberto Ierusalimschy 16493b777f 'lua_sethook' returns void 2013-12-09 12:21:10 -02:00
Roberto Ierusalimschy cac1ebd1e0 detail ('ttisuserdata' renamed to 'ttisfulluserdata') 2013-12-04 10:15:22 -02:00
Roberto Ierusalimschy 73c5515e00 details (comments) 2013-11-21 15:23:14 -02:00
Roberto Ierusalimschy e34c35abcf new bug: Resuming the running coroutine makes it unyieldable 2013-11-08 16:23:16 -02:00
Roberto Ierusalimschy 7a8eb83b4a bug: attempting to resume the running coroutine makes it unyieldable 2013-11-08 16:16:33 -02:00
Roberto Ierusalimschy ab5fa213b3 added patch for last bug 2013-11-08 15:45:10 -02:00
Roberto Ierusalimschy 39929384c6 new macro 'luai_userstateclose' (to test it is being called correctly) 2013-11-08 15:36:05 -02:00
Roberto Ierusalimschy de7cf8e63a bug: should call 'luai_userstateclose' only when 'luai_userstateopen'
has been called before
2013-11-08 15:34:22 -02:00
Roberto Ierusalimschy 124598917f "./?/init.lua" added to default path 2013-10-10 12:45:03 -03:00
Roberto Ierusalimschy c5fcba1a17 detail (changing some names of macros) 2013-10-07 11:20:31 -03:00
Roberto Ierusalimschy 4c6dfc342b CallInfo lists shrinks together with their associated stacks 2013-09-17 12:40:06 -03:00
Roberto Ierusalimschy 686e57cf9c GC local pause configurable 2013-09-13 13:21:52 -03:00
Roberto Ierusalimschy 06156e7575 detail (setmetatable do not need to use a back GC barrier) 2013-09-11 17:15:31 -03:00
Roberto Ierusalimschy 2e2c109daf type of 'refcount' changed to lu_mem (to ensure there will be no
overflows)
2013-09-11 12:17:00 -03:00
Roberto Ierusalimschy 6ca7b63bce check for shrinking string table done only at the end of a GC cycle 2013-09-11 11:56:15 -03: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 7061fe1d56 detail: 'sweepstep' checks end of phase after calling 'sweeplist', so
that phases with small lists return 0 at the first call to 'sweepstep'
2013-09-11 10:24: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 1150873447 'luaC_newobj' does not handle special cases; only special case
now is threads, which do not use 'luaC_newobj' anymore.
2013-09-11 09:26:14 -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 8ef9e8460e bug (GC can collect long identifier during parser) + change (using
a single constant table for all functions in a chunk)
2013-08-30 13:01:37 -03:00
Roberto Ierusalimschy 4f292d753c bug: GC can collect a long string still in use during parser 2013-08-30 12:51:12 -03:00
Roberto Ierusalimschy 26629d0af1 details (a few casts moved from macro invocation to macro definition) 2013-08-29 10:49:57 -03:00
Roberto Ierusalimschy b5e75fde4e bug: local collection must clear rest of stack 2013-08-29 10:34:16 -03:00
Roberto Ierusalimschy 9a871dd3db tables and userdata all go to local list, too 2013-08-28 15:30: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 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 0df6635711 "fixed" objects kept in a separated list (instead of being kept in
'allgc' list with a bit marking them)
2013-08-21 17:09:51 -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 8c68863960 initial size of string table (MINSTRTABSIZE) should be large enough
to hold all strings needed by an empty Lua state
2013-08-21 16:02:30 -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 9eff921f8f "barrier" for link prototype->cache changed to be consistent with
GC behavior (link is cleared to preserve invariant)
2013-08-19 11:18:43 -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 3679d33b02 barrier conditions rewritten to test first 'isblack' and then 'iswhite'
(during a pause all objects are white, so 'isblack' fails much more
often than 'iswhite')
2013-08-13 14:36:44 -03:00
Roberto Ierusalimschy 78b941039d change to allow collector to stop when it goes to the atomic phase
(just for debugging)
2013-08-07 12:39:09 -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 4244da96bf 'debug.subtype' -> 'math.type' (to distinguish integers and floats) 2013-07-22 13:05:53 -03:00
Roberto Ierusalimschy fcf99bf788 'math.isfloat' replaced by 'debug.subtype' 2013-07-10 17:57:05 -03:00
Roberto Ierusalimschy 98d76cdcae bug: Wrong error message in some short-cut expressions 2013-07-10 17:32:36 -03:00
Roberto Ierusalimschy 2f8c51a552 use unsigneds for unary minus, too 2013-07-10 14:15:12 -03:00