luajit: complete replacement for lua
PATCH v2 1/1 luajit: complete replacement for lua
the mutual exclusion is done by a choice
see initial discussion, http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/43499
--- Makefile | 6 ++++++ package/Config.in | 1 - package/copas/copas.mk | 2 +- package/coxpcall/coxpcall.mk | 1 - package/lua-msgpack-native/lua-msgpack-native.mk | 2 +- package/lua/Config.in | 25 ++++++++++++++++++++++ package/luacjson/luacjson.mk | 2 +- package/luaexpat/luaexpat.mk | 2 +- package/luafilesystem/luafilesystem.mk | 2 +- package/luajit/Config.in | 12 ----------- package/luajit/luajit-05-install-like-lua.patch | 17 +++++++++++++++ package/luasocket/luasocket.mk | 2 +- package/rings/rings.mk | 2 +- package/xavante/xavante.mk | 2 +- 14 files changed, 56 insertions(+), 22 deletions(-) delete mode 100644 package/luajit/Config.in create mode 100644 package/luajit/luajit-05-install-like-lua.patch
Makefile +6 -0
@@ -282,6 +282,12 @@ HOSTCC := $(CCACHE) $(HOSTCC) HOSTCXX := $(CCACHE) $(HOSTCXX) endif +ifeq ($(BR2_PACKAGE_LUA),y) + LUA_INTERPRETER = lua +else ifeq ($(BR2_PACKAGE_LUAJIT),y) + LUA_INTERPRETER = luajit +endif + ############################################################# # # You should probably leave this stuff alone unless you know
package/Config.in +0 -1
@@ -271,7 +271,6 @@ source "package/erlang/Config.in" source "package/haserl/Config.in" source "package/jamvm/Config.in" source "package/lua/Config.in" -source "package/luajit/Config.in" if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT menu "LUA libraries/modules" source "package/cgilua/Config.in"
package/copas/copas.mk +1 -1
@@ -6,7 +6,7 @@ COPAS_VERSION = 1.1.6 COPAS_SITE = http://github.com/downloads/keplerproject/copas -COPAS_DEPENDENCIES = lua coxpcall luasocket +COPAS_DEPENDENCIES = coxpcall luasocket COPAS_LICENSE = MIT define COPAS_INSTALL_TARGET_CMDS
package/coxpcall/coxpcall.mk +0 -1
@@ -6,7 +6,6 @@ COXPCALL_VERSION = 1.13.0 COXPCALL_SITE = http://luaforge.net/frs/download.php/3406 -COXPCALL_DEPENDENCIES = lua COXPCALL_LICENSE = MIT define COXPCALL_INSTALL_TARGET_CMDS
package/lua-msgpack-native/lua-msgpack-native.mk +1 -1
@@ -5,7 +5,7 @@ ############################################################# LUA_MSGPACK_NATIVE_VERSION = g41cce91 LUA_MSGPACK_NATIVE_SITE = http://github.com/kengonakajima/lua-msgpack-native/tarball/master -LUA_MSGPACK_NATIVE_DEPENDENCIES = lua +LUA_MSGPACK_NATIVE_DEPENDENCIES = $(LUA_INTERPRETER) LUA_MSGPACK_NATIVE_LICENSE = Apache-2.0 LUA_MSGPACK_NATIVE_LICENSE_FILES = LICENSE.txt
package/lua/Config.in +25 -0
@@ -1,3 +1,13 @@ + +choice + prompt "Lua Interpreter" + default BR2_PACKAGE_LUA_NONE + +config BR2_PACKAGE_LUA_NONE + bool "none" + help + None. + config BR2_PACKAGE_LUA bool "lua" help
@@ -5,6 +15,21 @@ config BR2_PACKAGE_LUA http://www.lua.org/ +config BR2_PACKAGE_LUAJIT + bool "luajit" + # Luajit is only available for some target architectures, and + # has some complexity wrt 32/64. See luajit.mk for details. + depends on BR2_i386 || (BR2_x86_64 && BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb + help + LuaJIT implements the full set of language features defined + by Lua 5.1. The virtual machine (VM) is API- and + ABI-compatible to the standard Lua interpreter and can be + deployed as a drop-in replacement. + + http://luajit.org/ + +endchoice + if BR2_PACKAGE_LUA choice
package/luacjson/luacjson.mk +1 -1
@@ -6,7 +6,7 @@ LUACJSON_VERSION = 2.1.0 LUACJSON_SOURCE = lua-cjson-$(LUACJSON_VERSION).tar.gz LUACJSON_SITE = http://www.kyne.com.au/~mark/software/download -LUACJSON_DEPENDENCIES = lua +LUACJSON_DEPENDENCIES = $(LUA_INTERPRETER) LUACJSON_LICENSE = MIT LUACJSON_LICENSE_FILES = LICENSE
package/luaexpat/luaexpat.mk +1 -1
@@ -6,7 +6,7 @@ LUAEXPAT_VERSION = 1.2.0 LUAEXPAT_SITE = http://matthewwild.co.uk/projects/luaexpat -LUAEXPAT_DEPENDENCIES = lua expat +LUAEXPAT_DEPENDENCIES = $(LUA_INTERPRETER) expat LUAEXPAT_LICENSE = MIT
package/luafilesystem/luafilesystem.mk +1 -1
@@ -6,7 +6,7 @@ LUAFILESYSTEM_VERSION = 1.5.0 LUAFILESYSTEM_SITE = http://github.com/downloads/keplerproject/luafilesystem -LUAFILESYSTEM_DEPENDENCIES = lua +LUAFILESYSTEM_DEPENDENCIES = $(LUA_INTERPRETER) LUAFILESYSTEM_LICENSE = MIT ifeq ($(BR2_LARGEFILE),y)
package/luajit/Config.in deleted +0 -12
@@ -1,12 +0,0 @@ -config BR2_PACKAGE_LUAJIT - bool "luajit" - # Luajit is only available for some target architectures, and - # has some complexity wrt 32/64. See luajit.mk for details. - depends on BR2_i386 || (BR2_x86_64 && BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb - help - LuaJIT implements the full set of language features defined - by Lua 5.1. The virtual machine (VM) is API- and - ABI-compatible to the standard Lua interpreter and can be - deployed as a drop-in replacement. - - http://luajit.org/
package/luajit/luajit-05-install-like-lua.patch new file +17 -0
@@ -0,0 +1,17 @@ +Install includes in /usr/include + +Signed-off-by: Francois Perrad <[email protected]> + +Index: b/Makefile +=================================================================== +--- a/Makefile ++++ b/Makefile +@@ -33,7 +33,7 @@ + INSTALL_BIN= $(DPREFIX)/bin + INSTALL_LIB= $(DPREFIX)/lib + INSTALL_SHARE= $(DPREFIX)/share +-INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER) ++INSTALL_INC= $(DPREFIX)/include + + INSTALL_JITLIB= $(INSTALL_SHARE)/luajit-$(VERSION)/jit + INSTALL_LMOD= $(INSTALL_SHARE)/lua/$(ABIVER)
package/luasocket/luasocket.mk +1 -1
@@ -6,7 +6,7 @@ LUASOCKET_VERSION = 2.0.2 LUASOCKET_SITE = http://luaforge.net/frs/download.php/2664 -LUASOCKET_DEPENDENCIES = lua +LUASOCKET_DEPENDENCIES = $(LUA_INTERPRETER) LUASOCKET_LICENSE = MIT LUASOCKET_LICENSE_FILES = LICENSE
package/rings/rings.mk +1 -1
@@ -6,7 +6,7 @@ RINGS_VERSION = 1.2.3 RINGS_SITE = http://github.com/downloads/keplerproject/rings -RINGS_DEPENDENCIES = lua +RINGS_DEPENDENCIES = $(LUA_INTERPRETER) RINGS_LICENSE = MIT define RINGS_BUILD_CMDS
package/xavante/xavante.mk +1 -1
@@ -6,7 +6,7 @@ XAVANTE_VERSION = 2.2.1 XAVANTE_SITE = http://github.com/downloads/keplerproject/xavante -XAVANTE_DEPENDENCIES = cgilua copas coxpcall lua luafilesystem luasocket wsapi +XAVANTE_DEPENDENCIES = cgilua copas coxpcall luafilesystem luasocket wsapi XAVANTE_LICENSE = MIT define XAVANTE_INSTALL_TARGET_CMDS
Signature · 1 line
1.7.9.5
PATCH v2 1/1 luajit: complete replacement for lua
Hi Francois,
Quoted 30 lines · Francois Perrad
the mutual exclusion is done by a choice
Signed-off-by Francois Perrad<[email protected]>see initial discussion, http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/43499
--- Makefile | 6 ++++++ package/Config.in | 1 - package/copas/copas.mk | 2 +- package/coxpcall/coxpcall.mk | 1 - package/lua-msgpack-native/lua-msgpack-native.mk | 2 +- package/lua/Config.in | 25 ++++++++++++++++++++++ package/luacjson/luacjson.mk | 2 +- package/luaexpat/luaexpat.mk | 2 +- package/luafilesystem/luafilesystem.mk | 2 +- package/luajit/Config.in | 12 ----------- package/luajit/luajit-05-install-like-lua.patch | 17 +++++++++++++++ package/luasocket/luasocket.mk | 2 +- package/rings/rings.mk | 2 +- package/xavante/xavante.mk | 2 +- 14 files changed, 56 insertions(+), 22 deletions(-)delete mode 100644 package/luajit/Config.in
create mode 100644package/luajit/luajit-05-install-like-lua.patchMakefile +0
-0
Makefile HOSTCC := $(CCACHE) $(HOSTCC) · line 290
Quoted 9 lines
Makefile +6
-0@@ -282,6 +282,12 @@ HOSTCC := $(CCACHE) $(HOSTCC) HOSTCXX := $(CCACHE) $(HOSTCXX) endif +ifeq ($(BR2_PACKAGE_LUA),y) + LUA_INTERPRETER = lua +else ifeq ($(BR2_PACKAGE_LUAJIT),y) + LUA_INTERPRETER = luajit +endif +
Minor detail: I think this fits better in package/Makefile.in.
Quoted 20 lines
Makefile +0
-0############################################################# # # You should probably leave this stuff alone unless you knowpackage/Config.in +0
-1@@ -271,7 +271,6 @@ source "package/erlang/Config.in" source "package/haserl/Config.in" source "package/jamvm/Config.in" source "package/lua/Config.in" -source "package/luajit/Config.in" if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT menu "LUA libraries/modules" source "package/cgilua/Config.in"package/copas/copas.mk +0
-0
package/copas/copas.mk line 9
Quoted 5 lines
package/copas/copas.mk +1
-1@@ -6,7 +6,7 @@ COPAS_VERSION = 1.1.6 COPAS_SITE = http://github.com/downloads/keplerproject/copas -COPAS_DEPENDENCIES = lua coxpcall luasocket +COPAS_DEPENDENCIES = coxpcall luasocket
I guess this is removed because it's a runtime-only dependency?
Then it's better to do this in a separate patch.
[snip]
Quoted 26 lines
package/lua/Config.in +14
-0@@ -1,3 +1,13 @@ + +choice + prompt "Lua Interpreter" + default BR2_PACKAGE_LUA_NONE + +config BR2_PACKAGE_LUA_NONE + bool "none" + help + None. + config BR2_PACKAGE_LUA bool "lua" help@@ -5,6 +15,21 @@ config BR2_PACKAGE_LUA http://www.lua.org/ +config BR2_PACKAGE_LUAJIT + bool "luajit" + # Luajit is only available for some target architectures, and + # has some complexity wrt 32/64. See luajit.mk for details.
package/lua/Config.in config BR2_PACKAGE_LUA · line 31
Quoted 10 lines
package/lua/Config.in +10
-0+ depends on BR2_i386 || (BR2_x86_64&& BR2_HOSTARCH='x86_64') || BR2_powerpc || BR2_arm || BR2_armeb + help + LuaJIT implements the full set of language features defined + by Lua 5.1. The virtual machine (VM) is API- and + ABI-compatible to the standard Lua interpreter and can be + deployed as a drop-in replacement. + + http://luajit.org/ + +endchoice
It's a good idea to make it a choice, but I have a few problems
with it:
- it doesn't work well with packages that select LUA (e.g. BR2_PACKAGE_LIGHTTPD_LUA);
- it's not good to split luajit's Config.in from the .mk file.
Maybe there could be a symbol BR2_USE_LUA that can be selected by
other packages? This symbol could be defined package/Config.in. The choice would default to BR2_PACKAGE_LUA if BR2_USE_LUA, and BR2_PACKAGE_LUA_NONE would depend on !BR2_USE_LUA.
Quoted 4 lines
package/lua/Config.in +1
-0+ if BR2_PACKAGE_LUA choice
[snip]
package/xavante/xavante.mk line 9
Quoted 10 lines
package/xavante/xavante.mk +1
-1@@ -6,7 +6,7 @@ XAVANTE_VERSION = 2.2.1 XAVANTE_SITE = http://github.com/downloads/keplerproject/xavante -XAVANTE_DEPENDENCIES = cgilua copas coxpcall lua luafilesystem luasocket wsapi +XAVANTE_DEPENDENCIES = cgilua copas coxpcall luafilesystem luasocket wsapi
Here again I think it should be a separate patch.
Regards,
Arnout
Quoted 3 lines
package/xavante/xavante.mk +0
-0XAVANTE_LICENSE = MIT define XAVANTE_INSTALL_TARGET_CMDS
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH v2 1/1 luajit: complete replacement for lua
2012/12/13 Arnout Vandecappelle <[email protected]>:
Quoted 40 lines
Hi Francois,
Quoted 36 lines · Francois Perrad
the mutual exclusion is done by a choice
Signed-off-by Francois Perrad<[email protected]>see initial discussion,
http://article.gmane.org/gmane.comp.lib.uclibc.buildroot/43499--- Makefile | 6 ++++++ package/Config.in | 1 - package/copas/copas.mk | 2 +- package/coxpcall/coxpcall.mk | 1 - package/lua-msgpack-native/lua-msgpack-native.mk | 2 +- package/lua/Config.in | 25 ++++++++++++++++++++++ package/luacjson/luacjson.mk | 2 +- package/luaexpat/luaexpat.mk | 2 +- package/luafilesystem/luafilesystem.mk | 2 +- package/luajit/Config.in | 12 ----------- package/luajit/luajit-05-install-like-lua.patch | 17 +++++++++++++++ package/luasocket/luasocket.mk | 2 +- package/rings/rings.mk | 2 +- package/xavante/xavante.mk | 2 +- 14 files changed, 56 insertions(+), 22 deletions(-)delete mode 100644 package/luajit/Config.in
create mode 100644package/luajit/luajit-05-install-like-lua.patchMakefile +0
-0@@ -282,6 +282,12 @@ HOSTCC := $(CCACHE) $(HOSTCC) HOSTCXX := $(CCACHE) $(HOSTCXX) endif
Quoted 9 lines
Makefile HOSTCC := $(CCACHE) $(HOSTCC) · line 290
Quoted 6 lines
Makefile +6
-0+ifeq ($(BR2_PACKAGE_LUA),y) + LUA_INTERPRETER = lua +else ifeq ($(BR2_PACKAGE_LUAJIT),y) + LUA_INTERPRETER = luajit +endif +Minor detail: I think this fits better in package/Makefile.in.
Ok.
Quoted 23 lines
Quoted 23 lines
Makefile +0
-0############################################################# # # You should probably leave this stuff alone unless you knowpackage/Config.in +0
-1@@ -271,7 +271,6 @@ source "package/erlang/Config.in" source "package/haserl/Config.in" source "package/jamvm/Config.in" source "package/lua/Config.in" -source "package/luajit/Config.in" if BR2_PACKAGE_LUA || BR2_PACKAGE_LUAJIT menu "LUA libraries/modules" source "package/cgilua/Config.in"package/copas/copas.mk +0
-0@@ -6,7 +6,7 @@
Quoted 8 lines
package/copas/copas.mk line 9
Quoted 4 lines
package/copas/copas.mk +1
-1COPAS_VERSION = 1.1.6 COPAS_SITE = http://github.com/downloads/keplerproject/copas -COPAS_DEPENDENCIES = lua coxpcall luasocket +COPAS_DEPENDENCIES = coxpcall luasocketI guess this is removed because it's a runtime-only dependency?
Then it's better to do this in a separate patch.
Ok.
Quoted 46 lines
[snip]
Quoted 30 lines
package/lua/Config.in +15
-0@@ -1,3 +1,13 @@ + +choice + prompt "Lua Interpreter" + default BR2_PACKAGE_LUA_NONE + +config BR2_PACKAGE_LUA_NONE + bool "none" + help + None. + config BR2_PACKAGE_LUA bool "lua" help@@ -5,6 +15,21 @@ config BR2_PACKAGE_LUA http://www.lua.org/ +config BR2_PACKAGE_LUAJIT + bool "luajit" + # Luajit is only available for some target architectures, and + # has some complexity wrt 32/64. See luajit.mk for details. + depends on BR2_i386 || (BR2_x86_64&& BR2_HOSTARCH='x86_64') ||
BR2_powerpc||BR2_arm||BR2_armebpackage/lua/Config.in config BR2_PACKAGE_LUA · line 31
Quoted 9 lines
package/lua/Config.in +9
-0+ help + LuaJIT implements the full set of language features defined + by Lua 5.1. The virtual machine (VM) is API- and + ABI-compatible to the standard Lua interpreter and can be + deployed as a drop-in replacement. + + http://luajit.org/ + +endchoiceIt's a good idea to make it a choice, but I have a few problems
with it:
Quoted 9 lines
- it doesn't work well with packages that select LUA (e.g.
BR2_PACKAGE_LIGHTTPD_LUA);
- it's not good to split luajit's Config.in from the .mk file.Maybe there could be a symbol
BR2_USE_LUAthat can be selected by
other packages? This symbol could be defined package/Config.in. The choice would default toBR2_PACKAGE_LUAifBR2_USE_LUA, andBR2_PACKAGE_LUA_NONEwould depend on !BR2_USE_LUA.
You are right, the choice lua/luajit works well for Lua extensions, but not when Lua is embedded (dnsmask, libedje, haserl, lighttpd). So, I'll remove it.
Fran?ois
Quoted 44 lines
Quoted 4 lines
+
ifBR2_PACKAGE_LUAchoice
[snip]
Quoted 9 lines
package/xavante/xavante.mk +0
-1@@ -6,7 +6,7 @@ XAVANTE_VERSION = 2.2.1 XAVANTE_SITE = http://github.com/downloads/keplerproject/xavante -XAVANTE_DEPENDENCIES = cgilua copas coxpcall lua luafilesystem luasocketQuoted 3 lines
wsapi
+XAVANTE_DEPENDENCIES = cgilua copas coxpcall luafilesystem luasocket wsapiHere again I think it should be a separate patch.
Regards,
ArnoutQuoted 3 lines
XAVANTE_LICENSE= MITdefine
XAVANTE_INSTALL_TARGET_CMDS--
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot