From e2ea3b31c94bb3e1da27c233661cb2a16699c685 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 7 Dec 2020 11:17:30 -0300 Subject: [PATCH] Details (do not affect regular code) * Avoids multiple definitions of 'lua_assert' in test file. * Smaller C-stack limit in test mode. * Note in the manual about the use of false * Extra test for constant reuse. --- lauxlib.h | 10 +++++++--- ltests.h | 5 +++++ manual/manual.of | 5 +++++ testes/code.lua | 14 ++++++++++++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lauxlib.h b/lauxlib.h index df3de4f8..65714911 100644 --- a/lauxlib.h +++ b/lauxlib.h @@ -160,11 +160,15 @@ LUALIB_API void (luaL_requiref) (lua_State *L, const char *modname, /* ** Internal assertions for in-house debugging */ +#if !defined(lua_assert) + #if defined LUAI_ASSERT -#include -#define lua_assert(c) assert(c) + #include + #define lua_assert(c) assert(c) #else -#define lua_assert(x) ((void)0) + #define lua_assert(c) ((void)0) +#endif + #endif diff --git a/ltests.h b/ltests.h index f8c4466f..cb3a0b48 100644 --- a/ltests.h +++ b/ltests.h @@ -130,6 +130,11 @@ LUA_API void *debug_realloc (void *ud, void *block, #define LUAI_MAXSTACK 50000 +/* test mode uses more stack space */ +#undef LUAI_MAXCCALLS +#define LUAI_MAXCCALLS 180 + + /* force Lua to use its own implementations */ #undef lua_strx2number #undef lua_number2strx diff --git a/manual/manual.of b/manual/manual.of index 606771f4..771bace0 100644 --- a/manual/manual.of +++ b/manual/manual.of @@ -88,6 +88,11 @@ The type @emph{boolean} has two values, @false and @true. Both @nil and @false make a condition false; they are collectively called @def{false values}. Any other value makes a condition true. +Despite its name, +@false is frequently used as an alternative to @nil, +with the key difference that @false behaves +like a regular value in a table, +while a @nil in a table represents an absent key. The type @emph{number} represents both integer numbers and real (floating-point) numbers, diff --git a/testes/code.lua b/testes/code.lua index 1f971cd7..4e00309f 100644 --- a/testes/code.lua +++ b/testes/code.lua @@ -55,6 +55,20 @@ end checkKlist(foo, {3.78/4, -3.78/4, -3.79/4}) +foo = function (f, a) + f(100 * 1000) + f(100.0 * 1000) + f(-100 * 1000) + f(-100 * 1000.0) + f(100000) + f(100000.0) + f(-100000) + f(-100000.0) + end + +checkKlist(foo, {100000, 100000.0, -100000, -100000.0}) + + -- testing opcodes -- check that 'f' opcodes match '...'