Roberto Ierusalimschy
257961c601
OP_SELF can use 'luaV_fastget' specialized for strings, as it
is applied only to string keys
9 years ago
Roberto Ierusalimschy
ae515a346c
comments for luaD_precall/luaD_poscall
9 years ago
Roberto Ierusalimschy
3cdf1d676b
details (avoid 'case' inside block + avoid using one variable for
two roles)
9 years ago
Roberto Ierusalimschy
82129b9266
use macro 'hasjumps' to test whether expression has jumps...
9 years ago
Roberto Ierusalimschy
8004ab756f
hook test in 'luaV_execute' reduced to minimum (rest done in
'luaG_traceexec'; no difference in performance for the non-hook
case, but keeps 'luaV_execute' a little simpler) + 'base' updates
replaced by 'Protect' (which serves this rule)
9 years ago
Roberto Ierusalimschy
ee5ef0f295
hook test in 'luaV_execute' reduced to minimum (rest done in
'luaG_traceexec'
9 years ago
Roberto Ierusalimschy
5bdee4f810
small changes to allow 'precall' to spend time preserving 'func'
only when needed (that is, when stack actually changes)
9 years ago
Roberto Ierusalimschy
48098c42ff
generic definitions for float types moved to before variable definitions
(so that specific cases can redefine these generic definitions if
needed)
9 years ago
Roberto Ierusalimschy
3ad55386c4
'condchangemem' also may need to run 'pre'/'pos'
9 years ago
Roberto Ierusalimschy
caf8278710
added comments
9 years ago
Roberto Ierusalimschy
f7670781cf
cleaner definition for 'luaC_condGC', using 'pre'/'pos' parameters
9 years ago
Roberto Ierusalimschy
df8b996bcc
'Protect' in table operations is not needed in the fast track
+ removal of a few dead macros
9 years ago
Roberto Ierusalimschy
75d5a8924c
macro 'addbuff' was using external variable name, instead of using
its parameter name inside the macro.
9 years ago
Roberto Ierusalimschy
880f82d089
'*' as a number means stack size, so that "return *" returns
all values in the stack.
9 years ago
Roberto Ierusalimschy
1a741157cb
avoid (undefined behavior) integer 'overflow' in left shift
9 years ago
Roberto Ierusalimschy
0c78de0d6d
avoid calling write function with empty block
9 years ago
Roberto Ierusalimschy
df45f7118b
detail (added assertion)
9 years ago
Roberto Ierusalimschy
880df57e52
detail (removed unreacheable 'break')
9 years ago
Roberto Ierusalimschy
8949904783
allow NULL string when length is zero in 'lua_pushlstring' and
'luaL_addlstring'
9 years ago
Roberto Ierusalimschy
9294466234
detail (string cache a bit smaller by default)
9 years ago
Roberto Ierusalimschy
e290bd6760
in 'luaL_traceback', print correct number of levels even when
initial level is not 1.
9 years ago
Roberto Ierusalimschy
dc4232379d
detail (ensure subtraction is done unsigned)
9 years ago
Roberto Ierusalimschy
10fffcd80a
'gmatch' keeps its state in a userdata (keeping the same 'MatchState'
across calls)
9 years ago
Roberto Ierusalimschy
8264dbc2bb
implemented counter to abort non-linear behavior in pattern matching
9 years ago
Roberto Ierusalimschy
9fae7b6d3f
code for string cache generalized for "associative sets" (compiler
will optimize away or inline the extra loops)
9 years ago
Roberto Ierusalimschy
0f1f51be4b
'table.move' tries to copy elements in increasing order
whenever possible
9 years ago
Roberto Ierusalimschy
ee5edb6b68
macros 'getaddrstr' and 'getstr' unified (they do the same thing)
9 years ago
Roberto Ierusalimschy
bda83e22c0
'tablib' does not try to use raw operations when possible: fast
track should make standard operations fast enough to forgo
raw accesses
9 years ago
Roberto Ierusalimschy
364cdbdbdb
'setobj2t' incorporated into 'luaV_fastset' + 'invalidateTMcache'
is not needed in the fast track (as it does not create new
entries) + small bug in 'auxsetstr' (calling barrier with wrong
object) + using 'setobj2t' without side effects in its arguments
9 years ago
Roberto Ierusalimschy
b91bc93fd3
'setobj2t' incorporated into 'luaV_fastset' + 'invalidateTMcache'
is not needed in the fast track (as it does not create new
entries)
9 years ago
Roberto Ierusalimschy
53be1451a8
new definition for macro 'checkliveness'
9 years ago
Roberto Ierusalimschy
eb0be12ceb
detail in macro 'checkliveness' + macro 'setobj2t' defined as an
expression (to be used in macro 'luaV_fastset')
9 years ago
Roberto Ierusalimschy
1198d82530
'lua_longassert' defined as an expression (instead of a command)
9 years ago
Roberto Ierusalimschy
6556fcfe5a
small janitor work
9 years ago
Roberto Ierusalimschy
41964648ee
long strings are created directly in final position when possible
(instead of using an auxiliar buffer to first create the string
and then allocate the final string and copy result there)
9 years ago
Roberto Ierusalimschy
502214f8a5
added assert for NULL pointer in 'lua_pushlstring'
9 years ago
Roberto Ierusalimschy
ed19fe766c
added ';' at the end of "expression lines" ("return exp;") so that
an extra ";" at the end is enough to stop Lua printing the result
("return exp;;" is not valid)
9 years ago
Roberto Ierusalimschy
8f25d08637
'invalidateTMcache' not needed in all 'settable' uses
9 years ago
Roberto Ierusalimschy
3b795541c4
fast track for 'settable'
9 years ago
Roberto Ierusalimschy
20b9e59441
barrier macros rewritten as expressions
9 years ago
Roberto Ierusalimschy
935d9f7f90
new entry should not be commented out
9 years ago
Roberto Ierusalimschy
e247c3ada3
implementation of fast track for gettable operations
9 years ago
Roberto Ierusalimschy
b5dc2f9b0c
bug: 'io.lines' does not check maximum number of options
9 years ago
Roberto Ierusalimschy
5273477cb9
in 'lua_number2strx', use the call to 'l_sprintf' to add exponent
to result directly
9 years ago
Roberto Ierusalimschy
b9db9bd0ef
'lua_Number' added to 'L_Umaxalign' union
9 years ago
Roberto Ierusalimschy
050e8536bb
bug: 'io.lines' does not check maximum number of options
9 years ago
Roberto Ierusalimschy
2b61360d82
avoid overflows (detected with 'clang -ftrapv')
9 years ago
Roberto Ierusalimschy
5b6ac971f9
detail (comment)
9 years ago
Roberto Ierusalimschy
403e181d81
'strftime' puts its result directly into 'lua_Buffer'
9 years ago
Roberto Ierusalimschy
4af03c5ae1
better treatment for integer overflows + all errors throw an error
(instead of returning nil)
9 years ago