Commit Graph

307 Commits

Author SHA1 Message Date
Roberto Ierusalimschy
1aead7f553 'hexafloat' moved to 'lobject.c' (hexa conversion needs it too) 2010-12-10 12:53:15 -02:00
Roberto Ierusalimschy
ccc4fc9cf0 detection of erroneous numeric strings with \0 (such as "1\0") 2010-12-06 19:08:36 -02:00
Roberto Ierusalimschy
9b7a12c46d finalizers (__gc) for tables 2010-11-26 12:32:31 -02:00
Roberto Ierusalimschy
78f9635111 several new comments 2010-07-26 12:53:23 -03:00
Roberto Ierusalimschy
575074fd85 Lua closures are cached for reuse 2010-06-04 10:25:10 -03:00
Roberto Ierusalimschy
0bccf03d7e slightly better definition for 'changenvalue' 2010-05-07 15:44:46 -03:00
Roberto Ierusalimschy
53f9499f7f "light C function" is a better name than "C-function pointer" 2010-04-18 10:22:48 -03:00
Roberto Ierusalimschy
7dfa4cd655 first implementation of light C functions 2010-04-14 12:13:48 -03:00
Roberto Ierusalimschy
d20ff60615 new macro LUA_NUMTAGS 2010-04-12 13:07:29 -03:00
Roberto Ierusalimschy
064e406f67 no more fenvs! 2010-03-26 17:58:11 -03:00
Roberto Ierusalimschy
25c557ec63 first version of _ENV; no more global variables 2010-03-12 16:14:06 -03:00
Roberto Ierusalimschy
1ebf109c53 'setobj' must assing fields one by one, to allow trick of using
pad space in table keys
2010-01-08 18:00:20 -02:00
Roberto Ierusalimschy
062e809e54 new macros 'LUAI_DDEC'/'LUAI_DDEF' to better control declarations and
definitions of non-static variables
2009-11-19 17:06:52 -02:00
Roberto Ierusalimschy
2583bac3d3 several small changes to simplify changing TValue if needed 2009-11-06 15:09:27 -02:00
Roberto Ierusalimschy
9756f56354 better control over accesses to TValue fields 2009-11-05 15:43:54 -02:00
Roberto Ierusalimschy
0ac3d07ea6 first implementation of lexical environments 2009-09-30 12:38:37 -03:00
Roberto Ierusalimschy
5938212748 information about upvalues (where they come from) kept in Proto structure,
instead of sequence of pseudo-opcodes after OP_CLOSURE
2009-09-28 13:32:50 -03:00
Roberto Ierusalimschy
bd5fa9cc8f new macro 'getproto' 2009-07-15 15:37:19 -03:00
Roberto Ierusalimschy
a36c8e1718 new macro 'changenvalue' 2009-06-18 13:36:40 -03:00
Roberto Ierusalimschy
6a024df440 new function 'luaO_arith' to perform basic arithmetic operations 2009-06-17 14:48:34 -03:00
Roberto Ierusalimschy
3dbf305408 no more support for old-style varargs 2009-03-26 09:57:01 -03:00
Roberto Ierusalimschy
bb92ef23cb bug: string at the end of TString must consider the entire TString
entity, not only its 'tsv' part
2008-08-05 16:26:23 -03:00
Roberto Ierusalimschy
a76fa25199 'ceillog2' now is exported (other modules may need it) 2008-01-30 16:05:23 -02:00
Roberto Ierusalimschy
94d40f3980 luaO_log2 can be private to ltable.c 2007-04-10 09:18:17 -03:00
Roberto Ierusalimschy
a7c9e45c64 avoid trailing white spaces 2006-09-11 11:07:24 -03:00
Roberto Ierusalimschy
440113bbe8 unused macro removed 2006-01-18 09:37:34 -02:00
Roberto Ierusalimschy
ffb798e1e2 avoids type punning for table keys 2006-01-10 10:51:53 -02:00
Roberto Ierusalimschy
c2bd68d2c3 detail 2005-10-24 15:37:33 -02:00
Roberto Ierusalimschy
0d1685d751 bug: last tag is not the number of tags... 2005-06-13 11:19:00 -03:00
Roberto Ierusalimschy
bf2b342ac1 better control for compatibility code for varargs 2005-06-13 11:15:54 -03:00
Roberto Ierusalimschy
d987cf1f81 new mark LUAI_DATA for extern data 2005-06-06 10:30:25 -03:00
Roberto Ierusalimschy
90de38bf1f warnings in VS .Net 2005-05-31 11:25:18 -03:00
Roberto Ierusalimschy
1ab2b93462 debug information for last line of a function definition 2005-05-05 17:47:02 -03:00
Roberto Ierusalimschy
8718fda9b2 added LUAI_FUNC to functions not in the API 2005-04-25 16:24:10 -03: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
e2498e079e change in hash algorithm so that it does not need empty slot
(tables can be 100% full)
2005-01-05 16:20:51 -02:00
Roberto Ierusalimschy
531874f6ce better (correct?) way to handle `next' over removed keys 2004-12-04 16:10:22 -02:00
Roberto Ierusalimschy
737ec947d3 better implementation for `floating-point bytes' 2004-11-01 12:06:50 -03:00
Roberto Ierusalimschy
bd38017ddf small optimization for table size in machines with double allignment 2004-10-06 15:34:16 -03:00
Roberto Ierusalimschy
616438fe9a new way to use vararg' parameters (with ...') 2004-05-31 15:51:50 -03:00
Roberto Ierusalimschy
a4e1230f95 better way to control open upvalues 2004-03-15 18:04:33 -03:00
Roberto Ierusalimschy
898e8a6794 added include to stdarg.h (as it uses vararg facilities) 2004-02-20 13:01:05 -03:00
Roberto Ierusalimschy
2aaf7394ad more and better tools (assertions & inspectors) to check incremental GC 2004-02-16 16:09:52 -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
366e4af3c9 towards incremental GC 2003-11-18 12:55:11 -02:00
Roberto Ierusalimschy
8332d5c8a5 parser fully reentrant(!) 2003-08-27 18:01:44 -03:00
Roberto Ierusalimschy
572a69df78 Lua does not need all those different types... 2003-04-28 16:26:16 -03:00
Roberto Ierusalimschy
ab9e062928 name changes to avoid name collision between macros and variables 2003-03-18 09:50:04 -03:00
Roberto Ierusalimschy
60c83ded30 small optimization for sizes of array constructors 2003-02-18 13:02:56 -03:00
Roberto Ierusalimschy
7a40cdbda0 different variables for number of upvalues and size of upvalue array
(makes code clearer)
2003-02-11 08:46:24 -02:00
Roberto Ierusalimschy
dd8edecae1 new functions to manipulate upvales (get/setupvalue) 2002-12-19 09:11:55 -02:00
Roberto Ierusalimschy
b40c9f7a3c better code to signal write barriers 2002-11-14 14:16:21 -02:00
Roberto Ierusalimschy
5c5d9b2703 back to `__mode' metafield to specify weakness 2002-11-14 10:01:35 -02:00
Roberto Ierusalimschy
3010eb0536 all objects with several children (tables, closures, stacks, prototypes)
go to `gray' queue
2002-11-13 09:49:19 -02:00
Roberto Ierusalimschy
dff9be4224 new macros to distinguish different types of object moves (for future GC
evolution).
2002-11-07 13:37:10 -02:00
Roberto Ierusalimschy
6820da5096 detail 2002-11-04 10:31:44 -02:00
Roberto Ierusalimschy
96e15b8501 threads now are real Lua objects, subject to garbage collection 2002-10-25 17:05:28 -03:00
Roberto Ierusalimschy
84e0b1bc97 small changes in type configuration facilities 2002-10-22 14:18:28 -03:00
Roberto Ierusalimschy
c196348717 in case of memory allocation errors, sizecode and sizelineinfo can
be different
2002-10-16 17:40:58 -03:00
Roberto Ierusalimschy
b3d0682fb9 use of different buffers for scanner and concatenation 2002-10-08 15:46:08 -03:00
Roberto Ierusalimschy
565e6d74e1 state's buffer is used only for chars 2002-09-19 10:03:53 -03:00
Roberto Ierusalimschy
4964e7c8a0 details 2002-09-02 16:54:49 -03: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
634344d61f new API for weak mode 2002-08-06 14:06:56 -03:00
Roberto Ierusalimschy
5037196f6f new macros `ttis*' 2002-08-05 11:50:39 -03:00
Roberto Ierusalimschy
79c8edb6c4 new names for light userdata operations 2002-07-17 13:25:13 -03:00
Roberto Ierusalimschy
9f4b5b5232 weak keys are removed only after finalization 2002-07-01 14:06:58 -03:00
Roberto Ierusalimschy
fdfd5b44ee TM_GETTABLE/TM_SETTABLE don't need fast access anymore 2002-06-24 17:18:38 -03:00
Roberto Ierusalimschy
e34f282365 `luaV_gettable' returns element position 2002-06-24 10:08:45 -03:00
Roberto Ierusalimschy
3941af53ad first implementation of independent global table per function 2002-06-20 17:41:46 -03:00
Roberto Ierusalimschy
864c96f36c new fallback for equality `__eq' 2002-06-13 10:39:55 -03:00
Roberto Ierusalimschy
eeab473fc8 new fallback __le (less equal), for partial order 2002-06-12 11:56:22 -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
0dbf0c5953 new format for test intructions (handle NaN correctly) 2002-05-06 12:51:41 -03:00
Roberto Ierusalimschy
237969724f support for light' userdata + simpler support for boxed' udata 2002-04-05 15:54:31 -03:00
Roberto Ierusalimschy
801aaf37b1 simpler implementation for line information 2002-03-25 14:47:14 -03:00
Roberto Ierusalimschy
b7ed502dea configurable macros should live in llimits.h 2002-03-18 15:16:16 -03:00
Roberto Ierusalimschy
71c716e5a8 avoid C identifiers beginning with '_' 2002-03-11 09:45:00 -03:00
Roberto Ierusalimschy
8a1a512c64 lu_byte is enough for those fields (maxstack < 256) 2002-03-05 09:42:47 -03:00
Roberto Ierusalimschy
e01f5e6809 better order of record fields for 64-bit machines 2002-02-08 20:42:41 -02:00
Roberto Ierusalimschy
d6fd33e76f eventtable' renamed to metatable' 2002-01-30 15:26:44 -02:00
Roberto Ierusalimschy
b3bb0f132b new interface for weak modes 2002-01-09 19:50:35 -02:00
Roberto Ierusalimschy
e04f7ed450 first version of Lua "stackless" 2001-12-18 18:52:30 -02:00
Roberto Ierusalimschy
9aff171f3b new type `boolean' 2001-12-11 20:48:44 -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
26bf2adace optimizations for space in LClosures and time cleanning weak tables 2001-11-06 19:41:53 -02:00
Roberto Ierusalimschy
21aa7e55f2 optimization for array part of a Table 2001-10-25 17:14:14 -02:00
Roberto Ierusalimschy
15462edb0f new definitions for closure structures 2001-10-02 13:45:03 -03:00
Roberto Ierusalimschy
8e9b1e4ae9 details 2001-09-25 14:08:46 -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
c3d72096c4 use a table to find (and reuse) constants when parsing 2001-08-27 12:16:28 -03:00
Roberto Ierusalimschy
770954510f rename of kproto' to p' 2001-06-28 11:57:17 -03:00
Roberto Ierusalimschy
b346834a09 new macros for changing numbers 2001-06-28 11:48:44 -03:00
Roberto Ierusalimschy
37f3a1c045 too much optimization to "break" keys in tables; keep them as TObjects... 2001-06-26 10:20:45 -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
762d059a13 new implementation for the Virtual Machine 2001-06-05 15:17:01 -03:00
Roberto Ierusalimschy
0e0e4a480e first implementation for weak tables 2001-04-11 11:42:41 -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
1e40b4dc61 buffer should be void *, as char now is not that neutral...
+ little bug in pointer arithmetic
2001-02-23 17:32:32 -03:00
Roberto Ierusalimschy
39b7978329 first (big) step to support wide chars 2001-02-23 14:17:25 -03:00
Roberto Ierusalimschy
888f91fa24 code check for upvalues 2001-02-20 15:28:11 -03:00
Roberto Ierusalimschy
099442c41f better separation between basic types 2001-02-20 15:15:33 -03:00
Roberto Ierusalimschy
d2e340f467 string pointers are always fully aligned 2001-02-09 18:22:29 -02:00
Roberto Ierusalimschy
1f9e3731d1 back to the basics (well-behaved variant record...) 2001-02-02 14:32:00 -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
6b71a9cfe5 smaller tables for machines with 8-bit alignment 2001-01-29 15:17:26 -02:00
Roberto Ierusalimschy
b82242d4c4 detail 2001-01-26 13:58:50 -02:00
Roberto Ierusalimschy
a53d9b66ca first implementation for type names 2001-01-25 14:45:36 -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
0183b8030c `free' gets size of the block: complete control over memory use 2000-12-28 10:55:41 -02:00
Roberto Ierusalimschy
4894c27962 lua_Number defined in lua.h (1st version) 2000-12-04 16:33:40 -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
37e9c2e744 macro DEBUG renamed to LUA_DEBUG 2000-10-30 14:29:59 -02:00
Roberto Ierusalimschy
b892f0a877 new API function `createuserdata' 2000-10-26 10:47:05 -02:00
Roberto Ierusalimschy
001f2bdd0e new definition for types-tags 2000-10-05 09:14: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
dad808a73a new way to count `nblocks' for GC (try to count bytes). 2000-09-29 09:42:13 -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
c85162be27 new way to store local-variable information. 2000-08-22 14:44:17 -03:00
Roberto Ierusalimschy
bd39db46ed details 2000-08-21 11:34:43 -03:00
Roberto Ierusalimschy
f90bc248b3 new structure for line information 2000-08-08 15:26:05 -03:00
Roberto Ierusalimschy
d9e61e8cea new algorithm for traversing in GC to avoid deep recursion calls 2000-08-07 17:21:34 -03:00
Roberto Ierusalimschy
cfba572076 remove dummy argument in LUA_ASSERT 2000-06-30 11:35:17 -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
8ca9534d04 access to `values' in TObject always through macros 2000-06-08 15:27:13 -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
330e51bed3 string hash uses one single hash table 2000-05-10 13:33:20 -03:00
Roberto Ierusalimschy
91f34fb05c lua.h should not use names without prefix lua_ (`TObject', for instance) 2000-05-08 16:37:10 -03:00
Roberto Ierusalimschy
11a7022067 global variables are stored in a Lua table 2000-05-08 16:32:53 -03:00
Roberto Ierusalimschy
534c3a64d3 small optimizations for table access 2000-04-25 13:55:09 -03:00
Roberto Ierusalimschy
c3b73cbeb8 comments (detail) 2000-04-10 16:20:24 -03:00
Roberto Ierusalimschy
36e1390631 details. 2000-03-31 13:28:45 -03:00
Roberto Ierusalimschy
8f0f54ec38 name change 2000-03-30 17:55:50 -03:00