Roberto Ierusalimschy
|
99ac4a260f
|
'constfolding' passes a proper Lua state to 'luaO_arith'
|
11 years ago |
Roberto Ierusalimschy
|
fa7e77fd38
|
detail ('codearith' uses 'LUA_OP*' constants instead of 'OP_*')
|
11 years ago |
Roberto Ierusalimschy
|
19ad78d713
|
C++ needs casts for arithmetic with enums
|
11 years ago |
Roberto Ierusalimschy
|
86dd8bf3f5
|
no more 'L' in macros "luai_num*" (several places that use those macros
cannot throw errors anyway...)
|
11 years ago |
Roberto Ierusalimschy
|
1ea2d20f74
|
first implementation of '<<', '>>', and '~' (bitwise not)
|
11 years ago |
Roberto Ierusalimschy
|
f5133aa1a5
|
small change in handling of unary operations
|
11 years ago |
Roberto Ierusalimschy
|
c0edab0f6d
|
first implementation of bitwise operators '&' (band), '|' (bor),
and '~' (bxor)
|
11 years ago |
Roberto Ierusalimschy
|
a948054a19
|
new order for binary operations (grouping them by type of result)
|
11 years ago |
Roberto Ierusalimschy
|
a8f8c7fd80
|
integer exponentiation with negative exponent is invalid
|
11 years ago |
Roberto Ierusalimschy
|
8ef9e8460e
|
bug (GC can collect long identifier during parser) + change (using
a single constant table for all functions in a chunk)
|
11 years ago |
Roberto Ierusalimschy
|
483c2ccd0f
|
avoid using raw representation of numbers for hashing, as number may
not use all its space (e.g., long double can have sizeof=12 but
use only 10 bytes)
|
12 years ago |
Roberto Ierusalimschy
|
f45177f2d3
|
In the table that hashes constants, use a light userdata as keys
to integer values to avoid collisions with floats with the same
numerical value
|
12 years ago |
Roberto Ierusalimschy
|
1f2b82bf25
|
correct way to avoid compile-time errors in integer divisions
|
12 years ago |
Roberto Ierusalimschy
|
67532d5a10
|
constant folding and API arithmetic with integers
|
12 years ago |
Roberto Ierusalimschy
|
00744a2729
|
'luaO_arith' -> 'luaO_numarith'
|
12 years ago |
Roberto Ierusalimschy
|
a2f5c28a80
|
new operation '//' (integer division)
|
12 years ago |
Roberto Ierusalimschy
|
5951c79ae1
|
default increment for 'for' loop is an integer (1, not 1.0)
|
12 years ago |
Roberto Ierusalimschy
|
1294b09d8e
|
first implementation of literal integers (no constant folding yet)
|
12 years ago |
Roberto Ierusalimschy
|
7a543cfae6
|
|
12 years ago |
Roberto Ierusalimschy
|
a3e1c40d6d
|
remove of unecessary luaD_checkstack. (In some cases, C should
ensure stack space; in others, Lua can use the extra slots for
temporary values.)
|
12 years ago |
Roberto Ierusalimschy
|
53480f1163
|
details (remove of some extra spaces)
|
12 years ago |
Roberto Ierusalimschy
|
ca458f1f52
|
'luaK_goiffalse' exported
|
13 years ago |
Roberto Ierusalimschy
|
51471ba748
|
comments about use of 'luaH_set'
|
13 years ago |
Roberto Ierusalimschy
|
5ab6d36d99
|
no more field 'L' in 'FuncState'
|
13 years ago |
Roberto Ierusalimschy
|
32a12e2f3f
|
detail (cleaned whitespaces at end of lines)
|
14 years ago |
Roberto Ierusalimschy
|
821bd7025e
|
more uniform names for 'equalobj'-related functions
|
14 years ago |
Roberto Ierusalimschy
|
9b7dddad7d
|
no need for two different implementations for equality (one raw and
one with metamethods)
|
14 years ago |
Roberto Ierusalimschy
|
d120ec29ca
|
bug in OP_SELF when method name goes to a register
|
14 years ago |
Roberto Ierusalimschy
|
4758113043
|
change in opcode OP_LOADNIL: B is used as a counter instead of a
register. (Avoids an assignment to R(B), not present in any other
instruction.)
|
14 years ago |
Roberto Ierusalimschy
|
427ee519db
|
new instruction OP_LOADKX (to replace OP_LOADK with extra argument)
|
14 years ago |
Roberto Ierusalimschy
|
dd547c55c8
|
new scheme to close upvalues in 'break'; jump instructions may
do the close, avoiding the need for a OP_CLOSE instruction
|
14 years ago |
Roberto Ierusalimschy
|
026a7e92be
|
bug in some short-circuit optimizations
|
14 years ago |
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)
|
15 years ago |
Roberto Ierusalimschy
|
6a02bbe1e2
|
better organization for fields in struct 'expdesc'
|
15 years ago |
Roberto Ierusalimschy
|
a71c5f6f53
|
typo in comments
|
15 years ago |
Roberto Ierusalimschy
|
c066ac10a9
|
better line numbers for function calls and unary/binary operators +
null statement + no more "ambiguous syntax" restriction
|
15 years ago |
Roberto Ierusalimschy
|
25c557ec63
|
first version of _ENV; no more global variables
|
15 years ago |
Roberto Ierusalimschy
|
0fe2576a39
|
new instructions to optimize indexing on upvalues
|
15 years ago |
Roberto Ierusalimschy
|
cef96b73e1
|
added casts from int to enumerations to follow C++ rules
|
15 years ago |
Roberto Ierusalimschy
|
fcc46467fa
|
limit of constants per function changed to 2^26 using extra arguments
to opcodes LOADK, GETGLOBAL, and SETGLOBAL
|
15 years ago |
Roberto Ierusalimschy
|
1b4480003b
|
"stange numbers" (-0 and NaN) also go to the constant table (as
strings with their binary representation). Therefore, constant
folding may produce these results.
|
15 years ago |
Roberto Ierusalimschy
|
d7872dcf91
|
small optimization (reorder of BinOpr enum to unify some cases
in switches)
|
16 years ago |
Roberto Ierusalimschy
|
96fa34ec32
|
constant folding uses 'luaO_arith' to perform basic operations
|
16 years ago |
Roberto Ierusalimschy
|
3db5f60547
|
BUG: "(((1 or false) and true) or false)" gives wrong result
|
16 years ago |
Roberto Ierusalimschy
|
2598138ece
|
new function 'luaK_codek' (detail)
|
16 years ago |
Roberto Ierusalimschy
|
4d7469b610
|
avoid constant folding for -0 (to avoid it colapsing to 0)
|
17 years ago |
Roberto Ierusalimschy
|
a4d3080fe3
|
SETLIST extra argument now is an "instruction" (OP_EXTRAARG)
|
17 years ago |
Roberto Ierusalimschy
|
81fc3c4f45
|
bug: code generated for "-nil", "-true", and "-false" is wrong
|
18 years ago |
Roberto Ierusalimschy
|
5f4f0d4a63
|
no more optimization to avoid LOADNIL at function start
|
18 years ago |
Roberto Ierusalimschy
|
3b19bd4d57
|
bug: wrong code when constant is coded after it should be
|
18 years ago |