Roberto Ierusalimschy
|
7e0caa7d61
|
new closures are always created on "next" register (so that GC knows
stack limit)
|
2010-12-17 10:03:41 -02:00 |
|
Roberto Ierusalimschy
|
4a83fe569c
|
comment
|
2010-12-15 17:13:29 -02:00 |
|
Roberto Ierusalimschy
|
0df2238063
|
name "_ENV" configurable through 'luaconf.h'
|
2010-09-07 16:21:39 -03:00 |
|
Roberto Ierusalimschy
|
8d9ea59d28
|
'pushclosure' -> 'codeclosure' (as there is another 'pushclosure' in
'lvm.c) + small detail
|
2010-08-23 14:32:34 -03:00 |
|
Roberto Ierusalimschy
|
81dd13f4c6
|
new way to distinguish between indexing tables in registers and
tables in upvalues (+ fixed small bug when checking conflicts in
multiple assignments)
|
2010-07-07 13:27:29 -03:00 |
|
Roberto Ierusalimschy
|
6a02bbe1e2
|
better organization for fields in struct 'expdesc'
|
2010-07-02 17:42:40 -03:00 |
|
Roberto Ierusalimschy
|
ca3865cf1b
|
'getlocal' gets information about parameters of Lua functions
|
2010-06-21 13:30:12 -03:00 |
|
Roberto Ierusalimschy
|
bd619b9311
|
new macro MAXUPVAL (maximum number of upvalues per closure)
|
2010-05-31 13:08:55 -03:00 |
|
Roberto Ierusalimschy
|
12c764ed1e
|
semicolons now represent the empty statement
|
2010-05-15 10:32:02 -03:00 |
|
Roberto Ierusalimschy
|
058279d548
|
comments
|
2010-05-14 12:03:43 -03:00 |
|
Roberto Ierusalimschy
|
0d00729e31
|
detail (breaking a long line)
|
2010-05-13 09:03:26 -03:00 |
|
Roberto Ierusalimschy
|
c066ac10a9
|
better line numbers for function calls and unary/binary operators +
null statement + no more "ambiguous syntax" restriction
|
2010-04-17 09:46:32 -03:00 |
|
Roberto Ierusalimschy
|
6abde1b05a
|
no need to keep "_ENV" name in global state (can be kept in lex state)
|
2010-04-05 13:35:37 -03:00 |
|
Roberto Ierusalimschy
|
d394d5536a
|
new macro 'eqstr'
|
2010-04-05 13:26:37 -03:00 |
|
Roberto Ierusalimschy
|
22ef84b6c8
|
'_ENV' name permanently stored in global state for easier access
|
2010-03-13 12:55:42 -03:00 |
|
Roberto Ierusalimschy
|
25c557ec63
|
first version of _ENV; no more global variables
|
2010-03-12 16:14:06 -03:00 |
|
Roberto Ierusalimschy
|
1124cb1247
|
first step towards _ENV: all chunks have an puvalues _ENV with the
global table
|
2010-03-08 13:55:52 -03:00 |
|
Roberto Ierusalimschy
|
e560ac4862
|
when searching for a variable name, look existing upvalues before
goingg to upper levels
|
2010-03-04 15:12:57 -03:00 |
|
Roberto Ierusalimschy
|
0fe2576a39
|
new instructions to optimize indexing on upvalues
|
2010-02-26 17:40:29 -03:00 |
|
Roberto Ierusalimschy
|
389c890ed3
|
again changing macro to function to save a few bytes
|
2010-01-06 09:48:02 -02:00 |
|
Roberto Ierusalimschy
|
e3866afa97
|
macro 'luaY_checklimit' changed into a function (and renamed 'checklimit').
It makes no sense to trade space for time in the parser.
|
2010-01-05 16:46:58 -02:00 |
|
Roberto Ierusalimschy
|
3c4d970a7b
|
comment typos
|
2009-11-26 09:39:20 -02:00 |
|
Roberto Ierusalimschy
|
35fa276099
|
parser/scanner keep GC running
|
2009-11-17 14:33:38 -02:00 |
|
Roberto Ierusalimschy
|
1448e736f0
|
better documentation for constructor syntax
|
2009-10-14 13:43:11 -03:00 |
|
Roberto Ierusalimschy
|
6e415e9387
|
local function definition does not need to correct debug information
|
2009-10-13 16:35:42 -03:00 |
|
Roberto Ierusalimschy
|
916587508c
|
parser keeps list of active local variables in a single dynamic array,
therefore saving C stack space
|
2009-10-11 17:02:19 -03: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
|
f8e354e240
|
detail (space between function name and its parameter list)
|
2009-09-23 17:14:00 -03:00 |
|
Roberto Ierusalimschy
|
4e1ffc482a
|
test for 'fs' being NULL at the end of 'close_func' is useless ('fs'
cannot be NULl and the new ls->fs can only be NULL when the token
is EOS, in which case anchor_token has no effect).
|
2009-08-10 17:41:04 -03:00 |
|
Roberto Ierusalimschy
|
d7872dcf91
|
small optimization (reorder of BinOpr enum to unify some cases
in switches)
|
2009-06-18 13:35:05 -03:00 |
|
Roberto Ierusalimschy
|
2598138ece
|
new function 'luaK_codek' (detail)
|
2009-06-10 13:52:03 -03:00 |
|
Roberto Ierusalimschy
|
d7bc346d7a
|
no more code checking
|
2009-04-30 14:42:21 -03:00 |
|
Roberto Ierusalimschy
|
3dbf305408
|
no more support for old-style varargs
|
2009-03-26 09:57:01 -03:00 |
|
Roberto Ierusalimschy
|
84b3daebbd
|
generic for coded as two dedicated instructions to simplify resumption
|
2008-10-30 13:39:30 -02:00 |
|
Roberto Ierusalimschy
|
9e58e0df8f
|
some cleaning
|
2008-10-28 10:55:00 -02:00 |
|
Roberto Ierusalimschy
|
198be23f36
|
added structure for local-variable information to allow extra
checkings if needed
|
2008-05-08 12:44:51 -03:00 |
|
Roberto Ierusalimschy
|
5627d51e05
|
corrected error message ("too many constants" -> "too many functions")
|
2008-04-02 14:19:22 -03:00 |
|
Roberto Ierusalimschy
|
3138afbe2e
|
parser should not call 'luaX_lexerror'
|
2007-10-25 14:45:47 -02:00 |
|
Roberto Ierusalimschy
|
4eef0aaad1
|
detail
|
2007-10-18 09:01:52 -02:00 |
|
Roberto Ierusalimschy
|
f6a81dbe97
|
BUG: too many variables in an assignment may cause a C stack overflow
|
2007-07-31 16:39:52 -03:00 |
|
Roberto Ierusalimschy
|
aa003eba8e
|
details
|
2007-05-11 14:28:56 -03:00 |
|
Roberto Ierusalimschy
|
5f4f0d4a63
|
no more optimization to avoid LOADNIL at function start
|
2007-03-27 11:11:38 -03:00 |
|
Roberto Ierusalimschy
|
92dc64e121
|
more regularity in the use of quotes in error messages
|
2007-02-07 15:49:18 -02:00 |
|
Roberto Ierusalimschy
|
4d7cfff6df
|
comments
|
2006-11-22 09:02:03 -02:00 |
|
Roberto Ierusalimschy
|
9f5a052c27
|
error message
|
2006-10-24 10:31:48 -03:00 |
|
Roberto Ierusalimschy
|
bd869c7b31
|
details
|
2006-09-14 15:42:28 -03:00 |
|
Roberto Ierusalimschy
|
d5a23dde90
|
little better error messages for internal arrays overflows
|
2006-09-14 09:59:06 -03:00 |
|
Roberto Ierusalimschy
|
93bf618504
|
BUG: there is only one C stack, so nCcalls must be global
|
2006-08-15 16:59:20 -03:00 |
|
Roberto Ierusalimschy
|
0782416a74
|
bug: wrong limit for list constructors
|
2006-07-12 16:02:50 -03:00 |
|
Roberto Ierusalimschy
|
3ca9af51a4
|
emergency garbage collector (core forces a GC when allocation fails)
|
2006-07-11 12:53:29 -03:00 |
|
Roberto Ierusalimschy
|
ee41bc03ab
|
details
|
2006-06-22 13:12:59 -03:00 |
|
Roberto Ierusalimschy
|
ed64346b9d
|
details
|
2006-06-05 12:57:59 -03:00 |
|
Roberto Ierusalimschy
|
3d61c31e5a
|
'lparser.h' should not include 'ltable.h'
|
2006-03-09 15:15:48 -03:00 |
|
Roberto Ierusalimschy
|
c505f341d6
|
small changes in casts
|
2005-12-22 14:19:56 -02:00 |
|
Roberto Ierusalimschy
|
87024e257d
|
details
|
2005-12-07 13:43:05 -02:00 |
|
Roberto Ierusalimschy
|
ff7638b0ed
|
VC warnings
|
2005-10-24 15:38:47 -02:00 |
|
Roberto Ierusalimschy
|
6dd0c6ccbc
|
numeral expressions keep their values in struct 'expdesc'
|
2005-10-03 11:02:40 -03:00 |
|
Roberto Ierusalimschy
|
ede19c9138
|
|
2005-09-30 11:21:56 -03:00 |
|
Roberto Ierusalimschy
|
3b19af44b0
|
new method to handle tests without values (negative values)
|
2005-08-29 17:49:21 -03:00 |
|
Roberto Ierusalimschy
|
8974b59e40
|
no more compatibility for {;} and similar syntax
|
2005-08-24 14:41:10 -03:00 |
|
Roberto Ierusalimschy
|
43ad0637ca
|
small optimizations
|
2005-08-22 15:54:32 -03:00 |
|
Roberto Ierusalimschy
|
074352911f
|
new coding for while and repeat (with new scoping for repeat)
|
2005-08-17 15:32:09 -03:00 |
|
Roberto Ierusalimschy
|
0f30d00c87
|
warnings from Visual C
|
2005-07-11 11:01:37 -03:00 |
|
Roberto Ierusalimschy
|
0b71bfd6af
|
syntax for length changed from '*' to '#'
|
2005-06-13 11:25:29 -03:00 |
|
Roberto Ierusalimschy
|
bf2b342ac1
|
better control for compatibility code for varargs
|
2005-06-13 11:15:54 -03:00 |
|
Roberto Ierusalimschy
|
f21e9c172f
|
details
|
2005-05-20 12:53:42 -03:00 |
|
Roberto Ierusalimschy
|
67578ec51f
|
several small details
|
2005-05-17 16:49:15 -03:00 |
|
Roberto Ierusalimschy
|
c2bb9abcec
|
better quotes for strings in error messages
|
2005-05-16 18:19:00 -03:00 |
|
Roberto Ierusalimschy
|
1ab2b93462
|
debug information for last line of a function definition
|
2005-05-05 17:47:02 -03:00 |
|
Roberto Ierusalimschy
|
65f4a0f636
|
no more compatibility code for traversing tables
|
2005-05-04 17:42:28 -03:00 |
|
Roberto Ierusalimschy
|
12acca7bd8
|
comments
|
2005-05-04 13:36:23 -03:00 |
|
Roberto Ierusalimschy
|
c3939f5786
|
comment
|
2005-04-29 09:43:47 -03:00 |
|
Roberto Ierusalimschy
|
bcc4089a7d
|
comment
|
2005-04-27 15:53:53 -03:00 |
|
Roberto Ierusalimschy
|
fabf5db237
|
C stack is the same for the parser and the interpreter, so depth
control should be unified in both parts.
|
2005-04-07 10:09:07 -03:00 |
|
Roberto Ierusalimschy
|
04bbd01171
|
new operation *t (for size of t) (may yet be removed...)
|
2005-03-16 13:59:21 -03:00 |
|
Roberto Ierusalimschy
|
370d31a559
|
luac´ -> luai' (to avoid confusion with other luac stuff)
|
2005-03-09 13:28:07 -03:00 |
|
Roberto Ierusalimschy
|
f8df21bd20
|
`luaconf.h´ exports all its definitions always (so all of them
must have a lua/LUA prefix).
|
2005-03-08 17:10:05 -03:00 |
|
Roberto Ierusalimschy
|
d3902cfa81
|
entries `{[...] = ...}' need space too.
|
2005-03-08 15:16:45 -03:00 |
|
Roberto Ierusalimschy
|
7d57ea70bc
|
new mod' ( %') operator
|
2005-03-08 15:00:16 -03:00 |
|
Roberto Ierusalimschy
|
b6a7983b65
|
USHRT_MAX may not fit in a (16-bit) int
|
2005-03-07 13:58:27 -03: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
|
65726f3e2e
|
cleaner interface to `ltable'
|
2005-01-04 13:55:12 -02:00 |
|
Roberto Ierusalimschy
|
70751dd27c
|
details
|
2004-12-07 16:31:16 -02:00 |
|
Roberto Ierusalimschy
|
c78940f21a
|
static names do not need `luaX_' prefix
|
2004-12-03 18:50:25 -02:00 |
|
Roberto Ierusalimschy
|
8b239eeba1
|
details
|
2004-12-03 18:44:19 -02:00 |
|
Roberto Ierusalimschy
|
a5330b77f3
|
static names do not need `luaX_' prefix
|
2004-12-03 18:35:33 -02:00 |
|
Roberto Ierusalimschy
|
10e48b9160
|
details
|
2004-11-19 14:59:08 -02:00 |
|
Roberto Ierusalimschy
|
5ee87acd6b
|
small optimization for boolean constants + new format for SETLIST opcode
|
2004-10-04 16:01:53 -03:00 |
|
Roberto Ierusalimschy
|
616438fe9a
|
new way to use vararg' parameters (with ...')
|
2004-05-31 15:51:50 -03:00 |
|
Roberto Ierusalimschy
|
b4cd38ba6c
|
new scheme for configuration through `luaconf.h'
|
2004-04-30 17:13:38 -03:00 |
|
Roberto Ierusalimschy
|
4c5d7b2ddd
|
small optimization for {f()}
|
2004-03-26 11:02:41 -03:00 |
|
Roberto Ierusalimschy
|
a003e89125
|
better error messages for some limits
|
2004-03-12 16:53:56 -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
|
df429f163a
|
First version of incremental GC
|
2003-12-09 14:56:11 -02:00 |
|
Roberto Ierusalimschy
|
a41d60e1d1
|
debugger can only see `local function' after it has a meaningful value
|
2003-10-09 14:56:23 -03:00 |
|
Roberto Ierusalimschy
|
3a508b8bd7
|
avoid the use of `strlen' (strings are literals)
|
2003-10-03 13:04:24 -03:00 |
|
Roberto Ierusalimschy
|
5d4bf35ec9
|
bug: syntax `local function' does not increment stack size
|
2003-09-29 13:41:35 -03:00 |
|
Roberto Ierusalimschy
|
2a70107581
|
detail
|
2003-09-05 11:00:27 -03:00 |
|
Roberto Ierusalimschy
|
8332d5c8a5
|
parser fully reentrant(!)
|
2003-08-27 18:01:44 -03:00 |
|
Roberto Ierusalimschy
|
9fcc485176
|
zio does not keep "source" name (nobody uses it)
|
2003-08-25 16:51:54 -03:00 |
|
Roberto Ierusalimschy
|
e89945aaa1
|
syntax ...=var' changed to var=...'
|
2003-07-29 15:51:00 -03:00 |
|
Roberto Ierusalimschy
|
d407d3fe0e
|
details
|
2003-07-28 15:31:20 -03:00 |
|
Roberto Ierusalimschy
|
265530478b
|
more changes to reduce stack usage by the parser
|
2003-07-09 17:11:30 -03:00 |
|
Roberto Ierusalimschy
|
00180bb133
|
small changes to reduce stack usage by the parser
|
2003-07-09 12:36:38 -03:00 |
|
Roberto Ierusalimschy
|
9eb0f25a29
|
no more compatibility code for 4.0
|
2003-05-14 18:02:39 -03:00 |
|
Roberto Ierusalimschy
|
5cc448386a
|
new syntax: `... [= name]'
|
2003-05-14 09:32:46 -03:00 |
|
Roberto Ierusalimschy
|
6d268b0b00
|
new semantics for "for" local variables
|
2003-05-13 17:15:59 -03:00 |
|
Roberto Ierusalimschy
|
0d88545b82
|
warnings from several compilers (mainly typecasts when lua_Number is float)
|
2003-04-03 10:35:34 -03:00 |
|
Roberto Ierusalimschy
|
6b6bc532a4
|
better error message for (deprecated) "%global"
|
2003-02-28 14:19:47 -03:00 |
|
Roberto Ierusalimschy
|
60c83ded30
|
small optimization for sizes of array constructors
|
2003-02-18 13:02:56 -03:00 |
|
Roberto Ierusalimschy
|
d674626392
|
compatibility with '%' syntax is optional
|
2003-02-11 08:49:53 -02: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
|
73517e86b0
|
OP_TFORLOOP uses extra stack space
|
2002-12-11 10:34:22 -02:00 |
|
Roberto Ierusalimschy
|
cc4a22ebe2
|
bug: scope of generic for variables is not sound
|
2002-12-06 15:09:00 -02:00 |
|
Roberto Ierusalimschy
|
27c6b4d422
|
each .c file defines its own name
|
2002-12-04 15:38:31 -02:00 |
|
Roberto Ierusalimschy
|
0050d983fc
|
make more clear "primitive" recursive definitions
|
2002-11-22 14:42:53 -02:00 |
|
Roberto Ierusalimschy
|
04b143ddf9
|
avoid C stack overflow during parsing
|
2002-11-22 14:35:20 -02:00 |
|
Roberto Ierusalimschy
|
007f229568
|
detail
|
2002-11-22 11:59:04 -02: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
|
fdafd4f4a8
|
new structure for collectable objects, sharing a common header
|
2002-08-30 16:09:21 -03:00 |
|
Roberto Ierusalimschy
|
c78aaa9a70
|
better line number for function definitions
|
2002-08-22 16:51:08 -03:00 |
|
Roberto Ierusalimschy
|
6c283b2f4f
|
new simetric format for ABC instructions, to avoid exchanging operands
for `commutative' operators
|
2002-08-20 17:03:05 -03:00 |
|
Roberto Ierusalimschy
|
1c0ac3c0f5
|
new implementation for tailcall
|
2002-08-05 14:35:45 -03:00 |
|
Roberto Ierusalimschy
|
1fe280df72
|
new priority for and/or
|
2002-07-04 15:23:42 -03:00 |
|
Roberto Ierusalimschy
|
88607acc2c
|
details
|
2002-06-26 13:37:23 -03:00 |
|
Roberto Ierusalimschy
|
65d66ba275
|
new "local function"
|
2002-06-06 14:29:53 -03:00 |
|
Roberto Ierusalimschy
|
cff22f57dd
|
some refactoring
|
2002-06-06 10:52:37 -03:00 |
|
Roberto Ierusalimschy
|
168ea16acb
|
details
|
2002-06-06 10:16:02 -03:00 |
|
Roberto Ierusalimschy
|
ff91b355f4
|
no more use of stdio inside the core (except for `tostring'...)
|
2002-06-03 11:09:57 -03:00 |
|
Roberto Ierusalimschy
|
955def0348
|
new names for string formating functions
|
2002-05-16 15:39:46 -03:00 |
|
Roberto Ierusalimschy
|
1c328a191a
|
no more `global' declarations
|
2002-05-14 14:52:22 -03:00 |
|
Roberto Ierusalimschy
|
af19d55635
|
generic for also coded to make test at the end of the loop
|
2002-05-13 10:09:00 -03:00 |
|
Roberto Ierusalimschy
|
2dadc81822
|
cleaner implementation of code generation for jumps
|
2002-05-10 16:22:11 -03:00 |
|
Roberto Ierusalimschy
|
b487975344
|
optimization for `while' (first version)
|
2002-05-10 14:02:32 -03:00 |
|
Roberto Ierusalimschy
|
dea6b6da94
|
new function lua_vpushstr' to replace uses of sprintf'
|
2002-05-07 14:36:56 -03:00 |
|
Roberto Ierusalimschy
|
9b38a696d5
|
avoid names that differ only in capitalization
|
2002-04-24 17:07:46 -03:00 |
|
Roberto Ierusalimschy
|
30ad4c75db
|
bug: 'local a,b; a,b = 1,f()' did not close f()
|
2002-04-22 11:38:52 -03:00 |
|
Roberto Ierusalimschy
|
11c63bc3af
|
error in calls signalled in first line (instead of last)
|
2002-04-10 16:14:45 -03:00 |
|
Roberto Ierusalimschy
|
7b65328c8e
|
new semantics for `generic for' (with state)
|
2002-04-09 16:47:44 -03:00 |
|
Roberto Ierusalimschy
|
e5919be1a7
|
bug: end of block may not be end of stat
|
2002-04-02 17:34:15 -03:00 |
|
Roberto Ierusalimschy
|
801aaf37b1
|
simpler implementation for line information
|
2002-03-25 14:47:14 -03:00 |
|
Roberto Ierusalimschy
|
e9ef7ed2d3
|
first implementation for tail call
|
2002-03-21 17:32:22 -03:00 |
|
Roberto Ierusalimschy
|
58badbab99
|
special treatment for 'global in nil'
|
2002-03-18 11:49:46 -03:00 |
|
Roberto Ierusalimschy
|
9681ff09db
|
small optimization when returning a single local value
|
2002-03-14 15:32:37 -03:00 |
|
Roberto Ierusalimschy
|
7ff21273d6
|
implementation of `global' statement
|
2002-03-14 15:01:52 -03:00 |
|
Roberto Ierusalimschy
|
bd8b9c94b3
|
generic for (with any number of control variables)
|
2002-03-08 16:10:32 -03:00 |
|
Roberto Ierusalimschy
|
ac178ee478
|
new constructor syntax + new generic `for'
|
2002-02-14 19:46:58 -02:00 |
|