Roberto Ierusalimschy
5e76a4fd31
New macros for arithmetic/bitwise operations in 'luaV_execute'
...
The repetitive code of the arithmetic and bitwise operators in
the main iterpreter loop was moved to appropriate macros.
(As a detail, the function 'luaV_div' was renamed 'luaV_idiv',
as it does an "integer division" (floor division).
2018-11-05 16:10:42 -02:00
Roberto Ierusalimschy
bd96330d03
First "complete" implementation of to-be-closed variables
...
Still missing:
- handling of memory errors when creating upvalue (must run closing
method all the same)
- interaction with coroutines
2018-10-17 10:44:42 -03:00
Roberto Ierusalimschy
f99509581e
Removed extra information from RCS keyword strings
...
Version numbers and dates (mostly wrong) from RCS keyword strings
removed from all source files; only the file name are kept.
2018-08-23 14:26:12 -03:00
Roberto Ierusalimschy
b43300c14f
change in 'LUAI_DDEC' to allow variables to be static in 'onelua'
...
+ change in 'LUAMOD_API' as opening functions do not need to be global
2018-06-18 09:51:05 -03:00
Roberto Ierusalimschy
6f2b8e21c4
added 'const' to 'Proto*' when possible
2018-06-08 16:06:59 -03:00
Roberto Ierusalimschy
fb8fa66136
no more 'luaH_emptyobject' and comparisons of addresses of global variables
...
(instead, use a different kind of nil to signal the fake entry returned
when a key is not found in a table)
2018-06-01 13:51:34 -03:00
Roberto Ierusalimschy
892aff2a07
avoid circular inclusion between ltm.h <-> lstate.h
2018-05-23 11:41:20 -03:00
Roberto Ierusalimschy
03c6a05ec8
no more nil-in-table
2018-04-04 11:23:41 -03:00
Roberto Ierusalimschy
b7edf5d2d8
metamethods for 'removekey'/'keyin'
2018-02-27 14:48:28 -03:00
Roberto Ierusalimschy
9243c414d9
first version of empty entries in tables
...
(so that, in the future, tables can contain regular nil entries)
2018-02-23 10:16:18 -03:00
Roberto Ierusalimschy
49dae52d08
correct way to check stack space for vararg functions
2018-02-17 17:20:00 -02:00
Roberto Ierusalimschy
b1379936cf
vararg back to '...' (but with another implementation)
...
new implementation should have zero overhead for non-vararg functions
2018-02-09 13:16:06 -02:00
Roberto Ierusalimschy
318a9a5859
new opcode 'PREPVARARG'
...
(avoids test for vararg function in all function calls)
2018-02-07 13:18:04 -02:00
Roberto Ierusalimschy
89110986d7
bug in tailcall of vararg functions
...
(when adjusting missing parameters)
2018-01-28 11:39:52 -02:00
Roberto Ierusalimschy
86431a2f1c
new opcodes BANDK/BORK/BXORK. (They do not use immediate operands
...
because, too often, masks in bitwise operations are integers larger
than one byte.)
2017-12-13 16:32:09 -02:00
Roberto Ierusalimschy
093c16b67b
new opcodes 'OP_LTI' and 'OP_LEI'
2017-11-27 15:44:31 -02:00
Roberto Ierusalimschy
1b10033583
new function 'luaT_trybiniTM'
...
to handle tag methods for instructions with immediate integer arguments
2017-09-27 15:59:08 -03:00
Roberto Ierusalimschy
f96497397a
new type 'StackValue' for stack elements
...
(we may want to put extra info there in the future)
2017-06-29 12:06:44 -03:00
Roberto Ierusalimschy
5c8770f896
back to old-style vararg system (with vararg table collecting extra
...
arguments)
2017-05-13 10:04:33 -03:00
Roberto Ierusalimschy
fb9de1b4d7
detail ('luaT_callbinTM' does not need to be extern)
2017-05-08 12:57:23 -03:00
Roberto Ierusalimschy
7777b412de
When available, use metafield '__name' in error messages
2016-02-26 16:20:15 -03:00
Roberto Ierusalimschy
bdf566a8a3
`name' in comments changed to 'name'
2014-10-25 09:50:46 -02:00
Roberto Ierusalimschy
1a3656e56e
more relaxed rules for __eq metamethod (more similar to other
...
operators)
2014-06-10 15:53:18 -03: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
b4be507578
new function 'luaT_trybinTM'
2013-04-29 13:56:50 -03:00
Roberto Ierusalimschy
a2f5c28a80
new operation '//' (integer division)
2013-04-26 10:08:29 -03:00
Roberto Ierusalimschy
9600c60df3
functions 'get_equalTM' and 'call_orderTM' moved to other files
...
to make 'lvm.c' smaller
2013-04-25 13:07:52 -03:00
Roberto Ierusalimschy
32bf6c9b27
functions 'traceexec', 'callTM', and 'call_binTM' moved to other
...
files to make 'lvm.c' a little smaller
2013-04-25 12:59:42 -03:00
Roberto Ierusalimschy
8f8665fffa
'ttypenv' -> 'ttnov'
2013-04-12 16:07:09 -03:00
Roberto Ierusalimschy
98816d0ce5
small problems with 'luaone.c'
2011-02-28 14:32:10 -03:00
Roberto Ierusalimschy
7dfa4cd655
first implementation of light C functions
2010-04-14 12:13:48 -03:00
Roberto Ierusalimschy
070d3743a7
"no value" added to array luaT_typenames + occurrences of "userdata"
...
in that array unified in a single address
2010-01-13 14:18:25 -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
fe0838cd1c
tables and strings respect __len metamethod
2007-09-10 14:59:32 -03:00
Roberto Ierusalimschy
d987cf1f81
new mark LUAI_DATA for extern data
2005-06-06 10:30:25 -03:00
Roberto Ierusalimschy
f21e9c172f
details
2005-05-20 12:53:42 -03:00
Roberto Ierusalimschy
6cf85dcc90
metatables for all types
2005-05-05 12:34:03 -03:00
Roberto Ierusalimschy
8718fda9b2
added LUAI_FUNC to functions not in the API
2005-04-25 16:24:10 -03:00
Roberto Ierusalimschy
7d57ea70bc
new mod' (
%') operator
2005-03-08 15:00:16 -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
af850484a9
default metatable can be NULL
2003-12-01 16:22:56 -02:00
Roberto Ierusalimschy
5c5d9b2703
back to `__mode' metafield to specify weakness
2002-11-14 10:01:35 -02:00
Roberto Ierusalimschy
e8f35fc4ff
unification of __index & __gettable (and __newindex & __settable)
2002-09-19 17:12:47 -03:00
Roberto Ierusalimschy
634344d61f
new API for weak mode
2002-08-06 14:06:56 -03:00
Roberto Ierusalimschy
9f4b5b5232
weak keys are removed only after finalization
2002-07-01 14:06:58 -03:00
Roberto Ierusalimschy
35707e94f3
__weakmode' ->
__mode'
2002-06-25 16:17:22 -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
864c96f36c
new fallback for equality `__eq'
2002-06-13 10:39:55 -03:00