Commit Graph

341 Commits

Author SHA1 Message Date
Roberto Ierusalimschy
5016f43aa4 (much) cleaner way to control function states 2002-08-07 16:22:39 -03:00
Roberto Ierusalimschy
a2fa48a570 new (old?) error handling scheme 2002-08-06 12:32:22 -03:00
Roberto Ierusalimschy
4e23699aa6 new implementation for error handling 2002-08-05 14:36:24 -03:00
Roberto Ierusalimschy
e5146fb01f CallInfo has different fields for C functions and Lua functions 2002-07-16 11:26:56 -03:00
Roberto Ierusalimschy
c51aa6ee33 details 2002-07-09 15:19:19 -03:00
Roberto Ierusalimschy
39b2d58c39 new interface for debug hooks 2002-07-08 15:21:33 -03:00
Roberto Ierusalimschy
3e52573c72 details (error messages) 2002-07-04 09:29:32 -03:00
Roberto Ierusalimschy
88607acc2c details 2002-06-26 13:37:23 -03:00
Roberto Ierusalimschy
3941af53ad first implementation of independent global table per function 2002-06-20 17:41:46 -03:00
Roberto Ierusalimschy
eec0905173 better tests (assertions) for debug hooks 2002-06-18 14:42:52 -03:00
Roberto Ierusalimschy
6ee2dbdfe9 traceback stops at first protected call 2002-06-18 14:10:43 -03:00
Roberto Ierusalimschy
1dbe708aa8 new protocol for error handling 2002-06-18 12:19:27 -03:00
Roberto Ierusalimschy
94c2449d25 undump may return LUA_ERRRUN 2002-06-03 17:12:50 -03:00
Roberto Ierusalimschy
35a22ed1ab lua_load* replaced by a simple lua_load 2002-06-03 14:46:34 -03:00
Roberto Ierusalimschy
46c471d7e9 new `__newindex' eventfield 2002-05-27 17:35:40 -03:00
Roberto Ierusalimschy
955def0348 new names for string formating functions 2002-05-16 15:39:46 -03:00
Roberto Ierusalimschy
b7a0503c1d new format for error messages 2002-05-15 15:57:44 -03:00
Roberto Ierusalimschy
dea6b6da94 new function lua_vpushstr' to replace uses of sprintf' 2002-05-07 14:36:56 -03:00
Roberto Ierusalimschy
751cd867d3 new way to handle errors 2002-05-01 17:48:12 -03:00
Roberto Ierusalimschy
ee4859b3e3 new way to handle errors (temporary version) 2002-04-22 11:40:50 -03:00
Roberto Ierusalimschy
c11d374c59 `panic' function configurable via API 2002-04-16 14:08:28 -03:00
Roberto Ierusalimschy
62dd4cbe91 check for errors while loading file 2002-04-15 16:34:42 -03:00
Roberto Ierusalimschy
f1f271ae76 details 2002-04-10 15:05:08 -03:00
Roberto Ierusalimschy
81215cd59f simpler way to control stack overflow 2002-03-26 17:46:10 -03:00
Roberto Ierusalimschy
44a5484d73 small bug (L->ci->top may be larger than L->top...) 2002-03-25 16:45:06 -03:00
Roberto Ierusalimschy
801aaf37b1 simpler implementation for line information 2002-03-25 14:47:14 -03:00
Roberto Ierusalimschy
63a614e145 some improvements in stack control 2002-03-20 09:52:32 -03:00
Roberto Ierusalimschy
da81845cd5 an error may call GC and find an incomplete `ci' 2002-03-15 14:17:16 -03:00
Roberto Ierusalimschy
71c716e5a8 avoid C identifiers beginning with '_' 2002-03-11 09:45:00 -03:00
Roberto Ierusalimschy
e19eba7219 cannot store `top' in local variables... 2002-03-08 16:11:03 -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
b0a5e156b8 no more maximum stack size 2002-02-14 19:47:29 -02:00
Roberto Ierusalimschy
e01f5e6809 better order of record fields for 64-bit machines 2002-02-08 20:42:41 -02:00
Roberto Ierusalimschy
addbe8c8b0 protected execution of `resume' 2002-02-05 20:38:37 -02:00
Roberto Ierusalimschy
653977a0ac callhook can be static 2002-01-30 15:27:53 -02:00
Roberto Ierusalimschy
50e2952593 first version of dynamic stack 2002-01-25 20:14:54 -02:00
Roberto Ierusalimschy
448517e47e no more linehook field in CallInfo 2002-01-18 15:39:06 -02:00
Roberto Ierusalimschy
6272c843de yield' passes its arguments to resume' 2002-01-11 18:27:41 -02:00
Roberto Ierusalimschy
f083812c02 first implementation of coroutines 2002-01-09 20:02:47 -02:00
Roberto Ierusalimschy
facfec0687 small optimizations 2002-01-03 15:42:57 -02:00
Roberto Ierusalimschy
42754c0f15 small optimizations 2001-12-20 19:26:52 -02:00
Roberto Ierusalimschy
18afb90349 first version of stackless Lua 2001-12-20 13:13:38 -02:00
Roberto Ierusalimschy
101cee3032 LUA_ERRERR also cannot generate error message 2001-12-13 16:11:02 -02:00
Roberto Ierusalimschy
a4c35a3269 it doesn't pay to optimize absence when it is an error 2001-12-10 20:10:30 -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
dfaf8c5291 details 2001-11-27 18:56:47 -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
c04d9b9ecb small bug when closing closures in error conditions 2001-09-25 14:05:49 -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
6c8e652aa6 use macros for 'getc' 2001-07-16 17:24:48 -03:00
Roberto Ierusalimschy
9f25df02d5 new definition for headers of binary files 2001-07-12 16:34:03 -03:00
Roberto Ierusalimschy
cbc59592ff new definition for luaD_call' and luaD_adjusttop' 2001-06-08 16:01:38 -03:00
Roberto Ierusalimschy
943b8f5b18 details 2001-06-05 16:41:24 -03:00
Roberto Ierusalimschy
6473f965ca new API functions to load (parse?) a chunk without running it. 2001-04-11 15:39:37 -03:00
Roberto Ierusalimschy
9aedea6ec8 small bug (when parser fails, there is no function on the stack...) 2001-04-06 16:26:06 -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
35023355f2 details for wchar 2001-02-23 14:28:12 -03:00
Roberto Ierusalimschy
39b7978329 first (big) step to support wide chars 2001-02-23 14:17:25 -03:00
Roberto Ierusalimschy
d164e2294f _ERRORMESSAGE called through get global tag method 2001-02-23 10:38:56 -03:00
Roberto Ierusalimschy
5f37134e64 avoid '...' and "..." inside comments 2001-02-22 15:59:59 -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
7178a5e34a new way to handle top x L->top 2001-02-07 16:13:49 -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
fa8c44b510 avoid the use of "reopen" (not that standard) 2001-01-29 13:35:17 -02:00
Roberto Ierusalimschy
bce6572579 new macros + new names to facilitate compilation of threaded version 2001-01-26 09:45:51 -02:00
Roberto Ierusalimschy
71ae4801d6 macros LUA_ENTRY/LUA_EXIT to control exclusive access to Lua core 2001-01-24 13:45:33 -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
dabb19fc17 specialized versions for luaH_set (numbers and strings) 2001-01-10 16:56:11 -02:00
Roberto Ierusalimschy
4ff5545709 new macro pushliteral 2001-01-10 14:58:11 -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
96253ed8ce better support for 64-bit machines (avoid excessive use of longs) 2000-11-24 15:39:56 -02:00
Roberto Ierusalimschy
f379d06e24 all API functions are declared in a single line (to facilitate pre-processing). 2000-10-30 10:38:50 -02:00
Roberto Ierusalimschy
64eecc0b82 new macro LUA_API 2000-10-20 14:39:03 -02:00
Roberto Ierusalimschy
2bddbe6603 cannot change filename' before eventual call to freopen' 2000-10-10 17:51:39 -02:00
Roberto Ierusalimschy
46b543ebef better treatment for errors inside _ERRORMETHOD 2000-10-09 13:46:43 -02:00
Roberto Ierusalimschy
d6232a0b2e better treatment for source names 2000-10-09 11:47:32 -02:00
Roberto Ierusalimschy
ad3816d0d1 luaD_call is more uniform 2000-10-06 09:45:25 -03: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
cd2ddaded9 call hooks can only be called when `pc' is active (that is, inside
`execute'...)
2000-10-04 09:16:08 -03:00
Roberto Ierusalimschy
f6834f4393 new API function `lua_type' + new type lua_Type 2000-10-02 17:10:55 -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
13635f7de7 new version of protected execution 2000-09-25 13:22:42 -03:00
Roberto Ierusalimschy
0f59e3d7a7 details 2000-09-12 10:47:39 -03:00
Roberto Ierusalimschy
8060193702 `lauxlib' is now part of the libraries (not used by core Lua) 2000-09-11 17:29:27 -03:00
Roberto Ierusalimschy
787a78f83e new scheme for buffers 2000-09-11 14:38:42 -03:00
Roberto Ierusalimschy
6990b06467 finish with parse data before doing main chunk. 2000-09-04 15:52:51 -03:00
Roberto Ierusalimschy
a290b84c67 dohook' to abstract callhook' and `linehook' 2000-08-31 10:31:44 -03:00
Roberto Ierusalimschy
a97f29f154 explicit stack control in the API 2000-08-29 17:43:28 -03:00
Roberto Ierusalimschy
808525e417 new asserts for hooks 2000-08-29 16:01:34 -03:00
Roberto Ierusalimschy
58adbde216 details 2000-08-29 11:57:23 -03:00
Roberto Ierusalimschy
9d60598260 better definitions for MULTRET 2000-08-29 11:48:16 -03:00
Roberto Ierusalimschy
ac12f4db4b C upvalues are the last arguments to a function 2000-08-29 11:33:31 -03:00
Roberto Ierusalimschy
9fdf73bc9a first version for new API 2000-08-28 14:57:04 -03:00
Roberto Ierusalimschy
daf09c476f still better error messages 2000-08-10 16:50:47 -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
435f587ed0 (much) better handling of memory alloction errors 2000-08-04 16:38:35 -03:00
Roberto Ierusalimschy
014a09c509 better error messages 2000-06-28 17:21:06 -03:00
Roberto Ierusalimschy
afef009fce new version of debug system 2000-06-26 16:28:31 -03:00
Roberto Ierusalimschy
e3ea307434 small changes to allow redefinition of some buffer sizes. 2000-06-16 14:16:34 -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
7e30900def better field name 2000-05-30 16:00:31 -03:00
Roberto Ierusalimschy
ef62b340e0 code cleaner for 16 bits. 2000-05-24 10:54:49 -03:00
Roberto Ierusalimschy
44b71ca816 defines for _ERRORMESSAGE and _ALERT 2000-05-09 11:50:16 -03:00
Roberto Ierusalimschy
11a7022067 global variables are stored in a Lua table 2000-05-08 16:32:53 -03:00
Roberto Ierusalimschy
870f61d299 code redistribution 2000-04-14 15:12:35 -03:00
Roberto Ierusalimschy
8f0f54ec38 name change 2000-03-30 17:55:50 -03:00
Roberto Ierusalimschy
556a89e537 new names for debug types 2000-03-30 14:19:48 -03:00
Roberto Ierusalimschy
a69356e9e0 no more special cases for closures with 0 upvalues (performance is the same,
memory use a little higher, code much simpler).
2000-03-29 17:19:20 -03:00
Roberto Ierusalimschy
73aa465a8e some name changes 2000-03-10 15:37:44 -03:00
Roberto Ierusalimschy
3c9d999424 many details (most by lhf). 2000-03-03 11:58:26 -03:00
Roberto Ierusalimschy
74f1c3d025 small changes for "clean C" 2000-02-08 14:39:42 -02:00
Roberto Ierusalimschy
2877bad4c2 new debug API (first version) 2000-01-19 10:00:45 -02:00
Roberto Ierusalimschy
46ec57cbc6 little change when calling tag methods 2000-01-13 13:56:03 -02:00
Roberto Ierusalimschy
b3aaa048b0 bug: cannot reopen stdin (for binary mode) 1999-12-30 16:40:57 -02:00
Roberto Ierusalimschy
bcdbdaccc3 more debug information (still with bug for tag methods...) 1999-12-30 16:28:40 -02:00
Roberto Ierusalimschy
298d0abff7 first version of extra debug information (NAME) 1999-12-29 14:31:15 -02:00
Roberto Ierusalimschy
acdb0b741e comments. 1999-12-27 15:33:22 -02:00
Roberto Ierusalimschy
b1b0c219f5 new ttypes to distinguish between C closures and Lua closures. 1999-12-23 16:19:57 -02:00
Roberto Ierusalimschy
6c79a0a80d new way to control hooks inside hooks (now the control is done inside Lua) 1999-12-21 16:04:41 -02:00
Roberto Ierusalimschy
617be66015 better control (and error recovery) for begin/end blocks 1999-12-06 10:03:45 -02:00
Roberto Ierusalimschy
f356eb010b configurable stack size + some corrections in error recovery in
`protectedrun'
1999-12-06 09:43:58 -02:00
Roberto Ierusalimschy
b097076678 missing include 1999-12-02 14:41:29 -02:00
Roberto Ierusalimschy
8223ff473f lua_Object is a pointer to the stack (because now the stack doen't move) 1999-12-02 14:24:45 -02:00
Roberto Ierusalimschy
fe237ad808 fixed stack; first version. 1999-12-01 17:50:08 -02:00
Roberto Ierusalimschy
d29ce75737 new signature for function luaD_call (old luaD_calln) 1999-11-25 16:58:51 -02:00
Roberto Ierusalimschy
29ede6aa13 first implementation of multiple states (reentrant code). 1999-11-22 11:12:07 -02:00
Roberto Ierusalimschy
cde179b369 new implementation for global variable values (separated from strings) 1999-11-04 15:23:12 -02:00
Roberto Ierusalimschy
8e7451512f some more `const's 1999-10-14 17:46:57 -02:00
Roberto Ierusalimschy
b6ebbb2fee better assertions. 1999-10-14 15:53:35 -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
f7fe04d4b7 details. 1999-09-06 12:24:46 -03:00
Roberto Ierusalimschy
c787dccd9b "const" !!! 1999-08-16 17:52:00 -03:00
Roberto Ierusalimschy
521b38532a better interfaces for luaD_calln (x luaD_call) 1999-06-22 17:37:23 -03:00
Roberto Ierusalimschy
36b6fe8d17 better treatment for arbitrary limits 1999-06-17 14:04:03 -03:00
Roberto Ierusalimschy
995775e1cb tighter control on the stack when debugging 1999-05-24 14:53:03 -03:00
Roberto Ierusalimschy
73308c7605 warnings by clinio 1999-05-10 10:54:01 -03:00
Roberto Ierusalimschy
82ad0d5770 details 1999-03-11 15:59:19 -03:00
Roberto Ierusalimschy
256d1bea08 missing #include 1999-03-10 11:23:07 -03:00
Roberto Ierusalimschy
f2d35bdc78 format for file source is independent of "ldo". 1999-03-10 11:19:41 -03:00
Roberto Ierusalimschy
78edc241e9 details about debug info. 1999-03-05 17:45:01 -03:00
Roberto Ierusalimschy
5a8bb00df4 storing chunk "sources" instead of "filenames". 1999-03-04 18:23:39 -03:00
Roberto Ierusalimschy
72d675aba7 macros "growvector" and "reallocvector" more compact 1999-02-26 12:48:55 -03:00
Roberto Ierusalimschy
e3a02e6a9c comments 1999-02-22 16:23:36 -03:00
Roberto Ierusalimschy
bb5627f3a4 better control over calls to _ALERT and _ERRORMESSAGE (to avoid error
loops)
1999-02-22 11:17:24 -03:00
Roberto Ierusalimschy
21107d7c2c debug state is restored after a dofile/dostring 1999-02-22 10:51:44 -03:00
Roberto Ierusalimschy
bf6d2ccf92 details 1999-02-12 17:23:02 -02:00
Roberto Ierusalimschy
5687949560 "lua_debug", "lua_callhook" and "lua_linehook" must be inside "lua_state". 1999-02-04 15:47:59 -02:00
Roberto Ierusalimschy
e87fddf1ad GC can be called during parsing, if needed. 1999-01-15 09:38:33 -02:00
Roberto Ierusalimschy
cc117253c8 new implementation for error handling: on error, function _ERRORMESSAGE
is called, which in turn calls _ALERT to write a message to stderr.
1998-08-21 14:43:44 -03:00
Roberto Ierusalimschy
ee912e5a7f auxiliar function "luaD_calln". 1998-07-12 13:14:34 -03:00
Roberto Ierusalimschy
df0df08bc5 "dostring" accepts chunk name. 1998-06-19 15:47:06 -03:00
Roberto Ierusalimschy
d97af0de26 "lua_dobuffer" gets an extra argument, with the chunk name 1998-06-15 18:34:14 -03:00
Roberto Ierusalimschy
741c6f5006 'dobuffer' addpoted. 1998-05-31 19:22:00 -03:00
Roberto Ierusalimschy
aee3f97acb put back quotes (") when string in dostring ends with a \n 1998-01-29 13:59:35 -02:00
Roberto Ierusalimschy
46968b8ffa "volatile is the only reliable way to ensure that a local variable
retains the value it had at the time of the call to longjmp"
1998-01-28 15:47:05 -02:00
Roberto Ierusalimschy
07ff251a17 details in "dostring" identification 1998-01-27 19:21:27 -02:00
Roberto Ierusalimschy
26679b1a48 back to upavalues as extra arguments for C closures; this way it's
trivial to make currying.
1998-01-07 14:26:48 -02:00
Roberto Ierusalimschy
da96eb2cce some details related to OLD_ANSI 1997-12-26 16:38:16 -02:00
Roberto Ierusalimschy
807ba6301c error method *always* gets a string (otherwise it is not called at all) 1997-12-23 10:50:49 -02:00
Roberto Ierusalimschy
03f3f9e707 "zio" now keeps its "name". 1997-12-22 18:57:18 -02:00
Roberto Ierusalimschy
de79e7fc58 back to "lua_upvalue"... (seems better choice) 1997-12-18 16:32:39 -02:00
Roberto Ierusalimschy
8b5b42563c "lua_dobuffer" (is not official, but its there...) 1997-12-17 18:57:20 -02:00
Roberto Ierusalimschy
45e533599f optimization: closures without upvalues don't need to be closures 1997-12-15 14:17:20 -02:00
Roberto Ierusalimschy
80b3d28f4a details (mainly error messages) 1997-12-09 11:50:08 -02:00
Roberto Ierusalimschy
5482992dec other access method for C upvalues (as arguments) 1997-11-27 16:25:14 -02:00
Roberto Ierusalimschy
9e029f98b9 details 1997-11-26 18:44:52 -02:00
Roberto Ierusalimschy
e962330df9 "stacklimit" is not necessary. 1997-11-26 18:28:22 -02:00
Roberto Ierusalimschy
accd7bc253 small modifications (format, small optimizations, etc) 1997-11-21 17:00:46 -02:00
Roberto Ierusalimschy
592a3f289b first implementation of centralized global state. 1997-11-19 15:29:23 -02:00
Roberto Ierusalimschy
92791b9dd6 small details 1997-11-07 13:09:49 -02:00
Roberto Ierusalimschy
45cad43c3f "lua_open": now lua has an explicit open operation. 1997-11-04 13:27:53 -02:00
Roberto Ierusalimschy
66713181c1 no need of "emergency error"... 1997-11-03 19:00:23 -02:00
Roberto Ierusalimschy
e78cf96c97 first version of Cclosures. 1997-10-24 15:17:24 -02:00
Roberto Ierusalimschy
907368ead5 GC now considers an "estimate" of object size, instead of just the number
of objects.
1997-10-23 14:26:37 -02:00
Roberto Ierusalimschy
45ccb0e881 "nupvalues" is kept in Closure, not in prototype (as a preparation
for C closures...)
1997-10-16 08:59:34 -02:00
Roberto Ierusalimschy
a580480b07 new implementation for globals: Global value is stored in TaggedString 1997-09-26 12:02:26 -03:00
Roberto Ierusalimschy
43a2ee6ea1 Stack and Call structure of Lua 1997-09-16 16:25:59 -03:00