Commit 5d28de85 authored by Johny Mattsson's avatar Johny Mattsson
Browse files

Merge pull request #722 from TerryE/luac-cross.2

Moving luac cross from master to dev
parents 10c4ac14 0beee5c1
......@@ -8,8 +8,10 @@
// #define LUA_USE_BUILTIN_IO // for io.xxx(), partially work
// #define LUA_USE_BUILTIN_OS // for os.xxx(), not work
// #define LUA_USE_BUILTIN_DEBUG // for debug.xxx(), not work
// #define LUA_USE_BUILTIN_DEBUG
#define LUA_USE_BUILTIN_DEBUG_MINIMAL // for debug.getregistry() and debug.traceback()
#ifndef LUA_CROSS_COMPILER
#define LUA_USE_MODULES
#ifdef LUA_USE_MODULES
......@@ -46,5 +48,6 @@
//#define LUA_USE_MODULES_HX711
#endif /* LUA_USE_MODULES */
#endif
#endif /* __USER_MODULES_H__ */
//#include "user_interface.h"
#include "user_config.h"
#ifdef LUA_CROSS_COMPILER
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#define ICACHE_RODATA_ATTR
#define TRUE 1
#define FALSE 0
#else
#include "c_stdlib.h"
#include "c_stdio.h"
#include "c_types.h"
#include "c_string.h"
#include "user_interface.h"
#include "user_config.h"
// const char *lua_init_value = "print(\"Hello world\")";
const char *lua_init_value = "@init.lua";
......@@ -21,7 +32,6 @@ const char *c_getenv(const char *__string)
}
return NULL;
}
// make sure there is enough memory before real malloc, otherwise malloc will panic and reset
// void *c_malloc(size_t __size){
// if(__size>system_get_free_heap_size()){
......@@ -43,7 +53,8 @@ const char *c_getenv(const char *__string)
// // NODE_ERR("free1: %d\n", system_get_free_heap_size());
// os_free(p);
// // NODE_ERR("-free1: %d\n", system_get_free_heap_size());
// }
// }c_stdlib.s
// int c_rand(void){
......@@ -55,9 +66,8 @@ const char *c_getenv(const char *__string)
// }
#include <_ansi.h>
//#include <reent.h>
#include <string.h>
//#include "mprec.h"
#endif
double powersOf10[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = /* Table giving binary powers of 10. Entry */
{
10., /* is 10^2^i. Used to convert decimal */
......
......@@ -4,17 +4,15 @@
** See Copyright Notice in lua.h
*/
//#include "c_assert.h"
#include "c_math.h"
#include "c_stdarg.h"
#include "c_string.h"
#define lapi_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
//#include C_HEADER_ASSERT
#include C_HEADER_MATH
#include C_HEADER_STRING
#include "lapi.h"
#include "ldebug.h"
#include "ldo.h"
......
......@@ -4,14 +4,18 @@
** See Copyright Notice in lua.h
*/
#define LUAC_CROSS_FILE
#include "c_ctype.h"
// #include "c_errno.h"
#include "c_stdarg.h"
#include "c_stdio.h"
#include "c_stdlib.h"
#include "c_string.h"
#include "lua.h"
#include C_HEADER_CTYPE
#include C_HEADER_ERRNO
#include C_HEADER_STDIO
#include C_HEADER_STDLIB
#include C_HEADER_STRING
#ifndef LUA_CROSS_COMPILER
#include "flash_fs.h"
#else
#endif
/* This file uses only the official API of Lua.
** Any function declared here could be written as an application function.
......@@ -20,8 +24,6 @@
#define lauxlib_c
#define LUA_LIB
#include "lua.h"
#include "lrotable.h"
#include "lauxlib.h"
......@@ -573,7 +575,7 @@ LUALIB_API void luaL_unref (lua_State *L, int t, int ref) {
** =======================================================
*/
#if 0
#ifdef LUA_CROSS_COMPILER
typedef struct LoadF {
int extraline;
......@@ -647,7 +649,7 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
#else
#include "c_fcntl.h"
#include C_HEADER_FCNTL
typedef struct LoadFSF {
int extraline;
......
......@@ -9,11 +9,14 @@
#define lauxlib_h
//#include "c_stddef.h"
#include "c_stdio.h"
#include "lua.h"
#ifdef LUA_CROSS_COMPILER
#include <stdio.h>
#else
#include "c_stdio.h"
#endif
#if defined(LUA_COMPAT_GETN)
LUALIB_API int (luaL_getn) (lua_State *L, int t);
......@@ -79,7 +82,7 @@ LUALIB_API int (luaL_checkoption) (lua_State *L, int narg, const char *def,
LUALIB_API int (luaL_ref) (lua_State *L, int t);
LUALIB_API void (luaL_unref) (lua_State *L, int t, int ref);
#if 0
#ifdef LUA_CROSS_COMPILER
LUALIB_API int (luaL_loadfile) (lua_State *L, const char *filename);
#else
LUALIB_API int (luaL_loadfsfile) (lua_State *L, const char *filename);
......
......@@ -6,16 +6,14 @@
#include "c_ctype.h"
#include "c_stdio.h"
#include "c_stdlib.h"
#include "c_string.h"
#define lbaselib_c
#define LUA_LIB
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDIO
#include C_HEADER_STRING
#include C_HEADER_STDLIB
#include "lauxlib.h"
#include "lualib.h"
#include "lrotable.h"
......@@ -295,7 +293,7 @@ static int luaB_loadstring (lua_State *L) {
static int luaB_loadfile (lua_State *L) {
const char *fname = luaL_optstring(L, 1, NULL);
#if 0
#ifdef LUA_CROSS_COMPILER
return load_aux(L, luaL_loadfile(L, fname));
#else
return load_aux(L, luaL_loadfsfile(L, fname));
......@@ -342,7 +340,7 @@ static int luaB_load (lua_State *L) {
static int luaB_dofile (lua_State *L) {
const char *fname = luaL_optstring(L, 1, NULL);
int n = lua_gettop(L);
#if 0
#ifdef LUA_CROSS_COMPILER
if (luaL_loadfile(L, fname) != 0) lua_error(L);
#else
if (luaL_loadfsfile(L, fname) != 0) lua_error(L);
......
......@@ -5,12 +5,12 @@
*/
#include "c_stdlib.h"
#define lcode_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDLIB
#include "lcode.h"
#include "ldebug.h"
......
......@@ -5,18 +5,19 @@
*/
#include "c_stdio.h"
#include "c_stdlib.h"
#include "c_string.h"
#define ldblib_c
#define LUA_LIB
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDIO
#include C_HEADER_STDLIB
#include C_HEADER_STRING
#include "lauxlib.h"
#include "lualib.h"
#include "lrotable.h"
#include "user_modules.h"
......@@ -25,6 +26,7 @@ static int db_getregistry (lua_State *L) {
return 1;
}
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
static int db_getmetatable (lua_State *L) {
luaL_checkany(L, 1);
......@@ -73,7 +75,7 @@ static void settabsi (lua_State *L, const char *i, int v) {
lua_setfield(L, -2, i);
}
#endif
static lua_State *getthread (lua_State *L, int *arg) {
if (lua_isthread(L, 1)) {
*arg = 1;
......@@ -84,7 +86,7 @@ static lua_State *getthread (lua_State *L, int *arg) {
return L;
}
}
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
static void treatstackoption (lua_State *L, lua_State *L1, const char *fname) {
if (L == L1) {
......@@ -324,7 +326,7 @@ static int db_debug (lua_State *L) {
lua_settop(L, 0); /* remove eventual returns */
}
}
#endif
#define LEVELS1 12 /* size of the first part of the stack */
#define LEVELS2 10 /* size of the second part of the stack */
......@@ -384,12 +386,15 @@ static int db_errorfb (lua_State *L) {
#define MIN_OPT_LEVEL 1
#include "lrodefs.h"
const LUA_REG_TYPE dblib[] = {
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
{LSTRKEY("debug"), LFUNCVAL(db_debug)},
{LSTRKEY("getfenv"), LFUNCVAL(db_getfenv)},
{LSTRKEY("gethook"), LFUNCVAL(db_gethook)},
{LSTRKEY("getinfo"), LFUNCVAL(db_getinfo)},
{LSTRKEY("getlocal"), LFUNCVAL(db_getlocal)},
#endif
{LSTRKEY("getregistry"), LFUNCVAL(db_getregistry)},
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
{LSTRKEY("getmetatable"), LFUNCVAL(db_getmetatable)},
{LSTRKEY("getupvalue"), LFUNCVAL(db_getupvalue)},
{LSTRKEY("setfenv"), LFUNCVAL(db_setfenv)},
......@@ -397,6 +402,7 @@ const LUA_REG_TYPE dblib[] = {
{LSTRKEY("setlocal"), LFUNCVAL(db_setlocal)},
{LSTRKEY("setmetatable"), LFUNCVAL(db_setmetatable)},
{LSTRKEY("setupvalue"), LFUNCVAL(db_setupvalue)},
#endif
{LSTRKEY("traceback"), LFUNCVAL(db_errorfb)},
{LNILKEY, LNILVAL}
};
......
......@@ -5,15 +5,12 @@
*/
#include "c_stdarg.h"
#include "c_stddef.h"
#include "c_string.h"
#define ldebug_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STRING
#include "lapi.h"
#include "lcode.h"
......
......@@ -4,15 +4,14 @@
** See Copyright Notice in lua.h
*/
#include <setjmp.h>
#include "c_stdlib.h"
#include "c_string.h"
#define ldo_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STRING
#include "ldebug.h"
#include "ldo.h"
......
......@@ -4,13 +4,12 @@
** See Copyright Notice in lua.h
*/
#include "c_stddef.h"
#include "c_string.h"
#define ldump_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STRING
#include "lobject.h"
#include "lstate.h"
......
......@@ -4,11 +4,9 @@
** See Copyright Notice in lua.h
*/
#include "c_stddef.h"
#define lfunc_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
......
......@@ -4,12 +4,12 @@
** See Copyright Notice in lua.h
*/
#include "c_string.h"
#define lgc_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STRING
#include "ldebug.h"
#include "ldo.h"
......
......@@ -5,14 +5,14 @@
*/
#include "c_ctype.h"
#include "c_locale.h"
#include "c_string.h"
#define llex_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_CTYPE
#include C_HEADER_LOCALE
#include C_HEADER_STRING
#include "ldo.h"
#include "llex.h"
......
......@@ -9,12 +9,9 @@
//#include "c_limits.h"
//#include "c_stddef.h"
#include "lua.h"
typedef LUAI_UINT32 lu_int32;
typedef LUAI_UMEM lu_mem;
......
......@@ -5,13 +5,13 @@
*/
#include "c_stdlib.h"
#include "c_math.h"
#define lmathlib_c
#define LUA_LIB
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDLIB
#include C_HEADER_MATH
#include "lauxlib.h"
#include "lualib.h"
......@@ -35,7 +35,7 @@ static int math_abs (lua_State *L) {
}
#ifndef LUA_NUMBER_INTEGRAL
#if 0
static int math_sin (lua_State *L) {
lua_pushnumber(L, sin(luaL_checknumber(L, 1)));
return 1;
......@@ -85,6 +85,7 @@ static int math_atan2 (lua_State *L) {
lua_pushnumber(L, atan2(luaL_checknumber(L, 1), luaL_checknumber(L, 2)));
return 1;
}
#endif
static int math_ceil (lua_State *L) {
lua_pushnumber(L, ceil(luaL_checknumber(L, 1)));
......@@ -95,7 +96,7 @@ static int math_floor (lua_State *L) {
lua_pushnumber(L, floor(luaL_checknumber(L, 1)));
return 1;
}
#if 0
static int math_fmod (lua_State *L) {
lua_pushnumber(L, fmod(luaL_checknumber(L, 1), luaL_checknumber(L, 2)));
return 1;
......@@ -108,6 +109,7 @@ static int math_modf (lua_State *L) {
lua_pushnumber(L, fp);
return 2;
}
#endif
#else // #ifndef LUA_NUMBER_INTEGRAL
......@@ -173,7 +175,7 @@ static int math_pow (lua_State *L) {
#ifndef LUA_NUMBER_INTEGRAL
#if 0
static int math_log (lua_State *L) {
lua_pushnumber(L, log(luaL_checknumber(L, 1)));
return 1;
......@@ -210,6 +212,7 @@ static int math_ldexp (lua_State *L) {
lua_pushnumber(L, ldexp(luaL_checknumber(L, 1), luaL_checkint(L, 2)));
return 1;
}
#endif
#endif // #ifdef LUA_NUMBER_INTEGRAL
......@@ -306,6 +309,8 @@ static int math_randomseed (lua_State *L) {
return 0;
}
#define MIN_OPT_LEVEL 1
#include "lrodefs.h"
const LUA_REG_TYPE math_map[] = {
......
......@@ -5,10 +5,9 @@
*/
#include "c_stddef.h"
#define lmem_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
......
......@@ -8,7 +8,11 @@
#define lmem_h
//#ifdef LUA_CROSS_COMPILER
//#include <stddef.h>
//#else
//#include "c_stddef.h"
//#endif
#include "llimits.h"
#include "lua.h"
......
......@@ -9,15 +9,18 @@
*/
#include "c_stdlib.h"
#include "c_string.h"
#include "c_fcntl.h"
#include "flash_fs.h"
#define loadlib_c
#define LUA_LIB
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDLIB
#include C_HEADER_STRING
#include C_HEADER_FCNTL
#ifndef LUA_CROSS_COMPILER
#include "flash_fs.h"
#endif
#include "lauxlib.h"
#include "lualib.h"
......@@ -328,7 +331,7 @@ static int ll_loadlib (lua_State *L) {
** 'require' function
** =======================================================
*/
#if 0
#ifdef LUA_CROSS_COMPILER
static int readable (const char *filename) {
FILE *f = c_fopen(filename, "r"); /* try to open file */
if (f == NULL) return 0; /* open failed */
......@@ -389,7 +392,7 @@ static int loader_Lua (lua_State *L) {
const char *name = luaL_checkstring(L, 1);
filename = findfile(L, name, "path");
if (filename == NULL) return 1; /* library not found in this path */
#if 0
#ifdef LUA_CROSS_COMPILER
if (luaL_loadfile(L, filename) != 0)
#else
if (luaL_loadfsfile(L, filename) != 0)
......
......@@ -4,16 +4,15 @@
** See Copyright Notice in lua.h
*/
#include "c_ctype.h"
#include "c_stdarg.h"
#include "c_stdio.h"
#include "c_stdlib.h"
#include "c_string.h"
#define lobject_c
#define LUA_CORE
#define LUAC_CROSS_FILE
#include "lua.h"
#include C_HEADER_STDIO
#include C_HEADER_STRING
#include C_HEADER_STDLIB
#include "ldo.h"
#include "lmem.h"
......@@ -21,9 +20,11 @@
#include "lstate.h"
#include "lstring.h"
#include "lvm.h"
#ifndef LUA_CROSS_COMPILER
#include "flash_api.h"
#else
#include <limits.h>
#endif
const TValue luaO_nilobject_ = {LUA_TVALUE_NIL};
......@@ -64,9 +65,11 @@ int luaO_log2 (unsigned int x) {
};
int l = -1;
while (x >= 256) { l += 8; x >>= 8; }
// return l + log_2[x];
#ifdef LUA_CROSS_COMPILER
return l + log_2[x];
#else
return l + byte_of_aligned_array(log_2,x);
#endif
}
......@@ -95,7 +98,21 @@ int luaO_str2d (const char *s, lua_Number *result) {
*result = lua_str2number(s, &endptr);
if (endptr == s) return 0; /* conversion failed */
if (*endptr == 'x' || *endptr == 'X') /* maybe an hexadecimal constant? */
#if defined(LUA_CROSS_COMPILER)
{
long lres = strtoul(s, &endptr, 16);
#if LONG_MAX != 2147483647L
if (lres & ~0xffffffffL)
*result = cast_num(-1);
else if (lres & 0x80000000L)
*result = cast_num(lres | ~0x7fffffffL);
else
#endif
*result = cast_num(lres);
}
#else
*result = cast_num(c_strtoul(s, &endptr, 16));
#endif
if (*endptr == '\0') return 1; /* most common case */
while (isspace(cast(unsigned char, *endptr))) endptr++;
if (*endptr != '\0') return 0; /* invalid trailing characters? */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment