Roberto Ierusalimschy
46de77b219
bug: despite its name, 'luaH_getstr' did not work for strings in
general, but only for short strings
9 years ago
Roberto Ierusalimschy
d356183402
new function 'luaS_hashlongstr'
9 years ago
Roberto Ierusalimschy
e61ee8a036
in 'luaD_call', use two functions instead of one with fixed boolean
argument + stack error handling in 'luaD_call' moved to a separated
function
9 years ago
Roberto Ierusalimschy
ff1289a361
in 'luaD_call', use two functions instead of one with fixed boolean
argument
9 years ago
Roberto Ierusalimschy
cd73f3ccc5
now that we have a counter for CallInfos, use it for a more
accurate value for the memory used by a thread
9 years ago
Roberto Ierusalimschy
8c1fb91802
macro 'incr_top' replaced by function 'luaD_inctop'. (It is not used
in critical time pathes, can save a few bytes without the macro)
9 years ago
Roberto Ierusalimschy
33b366ec32
added counters for total and individual CallInfo entries (to allow
better syncronization between CallInfo size and stack size)
9 years ago
Roberto Ierusalimschy
c5363a1b58
in 'luaD_precall', in vararg functions, complete missing parameters
only after moving them to final place (avoids checking the stack
again)
9 years ago
Roberto Ierusalimschy
332a06bbd1
'luaO_pushvfstring' now uses 'incr_top' to increment top.
9 years ago
Roberto Ierusalimschy
ffd0d1232d
using more "conventional" loops in 'luaD_poscall' (probably a little
more efficient?)
9 years ago
Roberto Ierusalimschy
07a2dcacbf
flag CIST_REENTRY changed to CIST_FRESH (its negation); fresh invocations
seem to be less frequent than reentries. (So, avoid setting flag on
the frequent case.)
9 years ago
Roberto Ierusalimschy
c874abac98
with 'fast tracks', there is no need to do raw accesses in 'ipairs'
9 years ago
Roberto Ierusalimschy
789e423b32
corrected comparisons of signed (int) with unsigned (size_t)
9 years ago
Roberto Ierusalimschy
96ec8671b1
macro 'buff2num' replaced by its body (it caused more harm than good
to readability)
9 years ago
Roberto Ierusalimschy
cc3a42b190
option 'c' in 'string.pack' accepts any string size (truncating
if larger and padding if smaller)
9 years ago
Roberto Ierusalimschy
6707ce6349
function prepares vararg only if it really uses them (chunks
are always declared vararg but seldom uses them)
9 years ago
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