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.
diff --git a/lauxlib.h b/lauxlib.h
index df3de4f..6571491 100644
--- a/lauxlib.h
+++ b/lauxlib.h
@@ -160,11 +160,15 @@
/*
** Internal assertions for in-house debugging
*/
+#if !defined(lua_assert)
+
#if defined LUAI_ASSERT
-#include <assert.h>
-#define lua_assert(c) assert(c)
+ #include <assert.h>
+ #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 f8c4466..cb3a0b4 100644
--- a/ltests.h
+++ b/ltests.h
@@ -130,6 +130,11 @@
#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 606771f..771bace 100644
--- a/manual/manual.of
+++ b/manual/manual.of
@@ -88,6 +88,11 @@
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 1f971cd..4e00309 100644
--- a/testes/code.lua
+++ b/testes/code.lua
@@ -55,6 +55,20 @@
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 '...'