Roberto Ierusalimschy
75ea9ccbea
Fixed bug of long strings in binary chunks
...
When "undumping" a long string, the function 'LoadVector' can call the
reader function, which can run the garbage collector, which can collect
the string being read. So, the string must be anchored during the call
to 'LoadVector'. (This commit also fixes the identation in 'l_alloc'.)
2020-08-18 14:48:43 -03:00
Roberto Ierusalimschy
5027298b46
Added directory 'testes/libs/P1' to the repository
...
This directory is used for some tests. As standard Lua has no command
to create directories, it must be present before running the tests.
2020-08-12 16:58:51 -03:00
Roberto Ierusalimschy
6d763a2500
'realloc' can fail when shrinking a block
...
According to ISO C, 'realloc' can fail when shrinking a block. If that
happens, 'l_alloc' simply ignores the fail and returns the original
block.
2020-08-12 11:13:47 -03:00
Roberto Ierusalimschy
b5bc898467
Fixed bug: Negation overflow in getlocal/setlocal
2020-08-03 16:25:28 -03:00
Roberto Ierusalimschy
092f66fb05
Fixed bug: invalid mode can crash 'io.popen'
2020-07-20 15:55:18 -03:00
Roberto Ierusalimschy
e7411fab80
Updated release number and copyright year
2020-07-14 09:37:36 -03:00
Roberto Ierusalimschy
4d6efa1f2d
Added .gitignore
2020-07-13 15:14:54 -03:00
Roberto Ierusalimschy
f5eb809d3f
Fixed missing GC barriers in compiler and undump
...
While building a new prototype, the GC needs barriers for every object
(strings and nested prototypes) that is attached to the new prototype.
2020-06-18 15:56:45 -03:00
Roberto Ierusalimschy
d71a548685
Fixed typos in comments
2019-12-27 10:48:23 -03:00
Roberto Ierusalimschy
cee1ebe337
File 'bugs' no longer tracked by git
...
The file 'bugs' reports bugs in several different versions
(corresponding to different branches in the repository), without
a clear division of "this bugs belongs to this version". So, it
doesn't make sense to track it along with one (or many) versions.
2019-11-25 11:23:30 -03:00
Roberto Ierusalimschy
73c6ff6593
More generic pattern when testing 'string.format'
...
The result of 'string.format("%a", 0.0)' can have multiple zeros
after the dot.
2019-11-22 11:04:26 -03:00
Roberto Ierusalimschy
89aee84cbc
Fixed bug in 'lua_upvaluejoin'
...
Bug-fix: joining an upvalue with itself could cause a use-after-free
crash.
2019-03-27 14:30:12 -03:00
Roberto Ierusalimschy
f059c2bcc8
File 'bugs' updated to version 5.3.5
2018-12-17 15:43:09 -02:00
Roberto Ierusalimschy
1221e987fe
Bug: Long brackets with a huge number of '=' causes overflow
...
A long bracket with too many equal signs can overflow the 'int' used for
the counting and some arithmetic done on the value. Changing the counter
to 'size_t' avoids that. (Because what is counted goes to a buffer, an
overflow in the counter will first raise a buffer-overflow error.)
2018-12-17 15:36:51 -02:00
Roberto Ierusalimschy
063d4e4543
Lua 5.3.5 ported to git
...
This is the first commit for the branch Lua 5.3. All source files
were copied from the official distribution of 5.3.5 in the Lua site.
The test files are the same of 5.3.4. The manual came from the
previous RCS repository, revision 1.167.1.2.
2018-12-17 14:46:37 -02:00
Roberto Ierusalimschy
e354c6355e
small updates
2017-01-31 19:17:47 -02:00
Roberto Ierusalimschy
94c1b3a8ee
Handling of LUA_PATH/LUA_CPATH moved back to 'package' library
...
to avoid incompatibilites with previous releases
2017-01-12 15:14:26 -02:00
Roberto Ierusalimschy
08199ade4a
release 5.3.4 (year 2017)
2016-12-22 13:51:20 -02:00
Roberto Ierusalimschy
2a235312f0
detail (removing spaces at end of lines)
2016-12-22 11:08:50 -02:00
Roberto Ierusalimschy
9903dd52a3
Using LUAI_UAC* types more consistently on vararg calls
2016-12-20 16:37:00 -02:00
Roberto Ierusalimschy
24f6e236a3
'moveresults' and 'luaD_poscall' moved up in the file
2016-12-13 13:52:21 -02:00
Roberto Ierusalimschy
9f594ca6f5
LUA_PATHSUFFIX -> LUA_VERSUFFIX + LUA_VERSUFFIX used in the
...
definition of LUA_INITVARVERSION, too.
2016-12-13 13:50:58 -02:00
Roberto Ierusalimschy
4df4560bf5
detail (wrong comment)
2016-12-06 12:54:31 -02:00
Roberto Ierusalimschy
b2aa2ba046
using constants for "_LOADED" and "PRELOAD"
2016-12-04 18:17:24 -02:00
Roberto Ierusalimschy
beec5af201
'luaL_tolstring' uses metatable's "__name" when available
2016-12-04 18:09:45 -02:00
Roberto Ierusalimschy
7b1fba69b7
using 'lastfree == NULL' to signal that table is using the dummy
...
node for its hash part + new macro 'allocsizenode'
2016-11-07 10:38:35 -02:00
Roberto Ierusalimschy
697593d8d5
bug: When a coroutine tries to resume a non-suspended coroutine,
...
it can do some mess (and break C assertions) before detecting the error.
2016-10-19 10:34:27 -02:00
Roberto Ierusalimschy
e2dc807c6e
check whether function is finalizer when finding a name for it +
...
comments + some instructions can call functions in unespected ways
(e.g., finalizers)
2016-10-19 10:32:10 -02:00
Roberto Ierusalimschy
138d00176c
new flag in 'CallInfo.callstatus' to tell whether function is running
...
as a finalizer
2016-10-19 10:31:42 -02:00
Roberto Ierusalimschy
8edbf57fb8
detail (ANSI C does not accept empty arguments to macros)
2016-09-20 13:37:45 -03:00
Roberto Ierusalimschy
7fe1a4cff3
cleaner and more correct code for 'luaD_shrinkstack' (the old
...
test "inuse <= LUAI_MAXSTACK" for stack overflow is not correct,
as the real maximum usable size is "LUAI_MAXSTACK - EXTRA_STACK")
2016-09-08 13:36:26 -03:00
Roberto Ierusalimschy
dbb6f11e8e
bug (with compat on): 'ipairs' can work with any type that provides
...
an __index; so, 'pairsmeta' should not check for tables. ('pairs'
already checks for tables through 'next'.)
2016-09-05 16:06:34 -03:00
Roberto Ierusalimschy
aeb4c6fff1
comments + removed unused variable
2016-09-05 15:53:02 -03:00
Roberto Ierusalimschy
3b91b07fd9
detail (macro 'l_checkmode' reimplemented as function)
2016-09-01 13:14:56 -03:00
Roberto Ierusalimschy
349badabc1
wrong test in '#if' for floating-point type
2016-08-22 14:21:12 -03:00
Roberto Ierusalimschy
e4a9e6fcca
do not eliminate varargs from functions that do not use varargs
...
(confuses the debug lib and gains very little in performance)
2016-08-01 16:51:24 -03:00
Roberto Ierusalimschy
9de2bb0d62
bug: When a coroutine tries to resume a non-suspended coroutine,
...
it coud do some mess (and break C assertions) before detecting the error.
Now it tests for those errors before anything else.
2016-07-29 14:12:44 -03:00
Roberto Ierusalimschy
d55fd3455b
redefine MAXINDEXRK (for debugging, to force most values to
...
go through registers)
2016-07-19 14:13:00 -03:00
Roberto Ierusalimschy
0d1c6f4188
MAXINDEXRK can be redefined (for debugging, to force most values to
...
go through registers)
2016-07-19 14:12:21 -03:00
Roberto Ierusalimschy
fc6b32bcaa
bug: Lua can generate wrong code in functions with too many constants
2016-07-19 14:12:07 -03:00
Roberto Ierusalimschy
de96e26afc
bug: 'checkoption' could read past end of string + 'os.date' can
...
handle embedded zeros
2016-07-18 14:58:58 -03:00
Roberto Ierusalimschy
de3fd8ab83
Handling of LUA_PATH/LUA_CPATH moved from package library to stand
...
alone interpreter (so that 'lua.c' concentrates all handling of
environment variables)
2016-07-18 14:55:59 -03:00
Roberto Ierusalimschy
788109a3de
new bug: Checking a format for 'os.date' may read pass the format string
2016-07-15 14:24:09 -03:00
Roberto Ierusalimschy
09c9fa36ea
small corrections for C++ compliance
2016-06-27 10:15:08 -03:00
Roberto Ierusalimschy
dcb2998aa6
bug: expression list with four or more expressions in
...
a 'for' loop can crash the interpreter. ('adjust_assign' must
remove extra expresssions from its registers.)
2016-06-22 12:48:25 -03:00
Roberto Ierusalimschy
fac00ca023
bug: expression list with four or more expressions in
...
a 'for' loop can crash the interpreter.
2016-06-21 14:22:34 -03:00
Roberto Ierusalimschy
6487fb11fc
all 'static' variables should be 'const'
2016-06-20 16:12:46 -03:00
Roberto Ierusalimschy
644799537f
allow more bits in 'callstatus' (use no extra space due to alignments)
2016-06-16 10:36:09 -03:00
Roberto Ierusalimschy
aa66ca76ce
'lua_pushglobaltable' returns 'void'
2016-05-30 12:53:28 -03:00
Roberto Ierusalimschy
707b0ba6e2
'string.format("%q")' writes 'math.mininteger' in hexa, to ensure
...
it is read back as an integer
2016-05-20 11:13:21 -03:00