Re: lua vs luajit vs both

2014-01-14 Thread John Keeping
On Tue, Jan 14, 2014 at 02:02:40AM +0100, Jason A. Donenfeld wrote:
 I've gone ahead and merged the lua work to master, for testing and
 subsequent cleanup before release.
 
 Regarding to jit or not to jit, I currently have this fancy autodetection
 logic:
 http://git.zx2c4.com/cgit/commit/?id=3488d124052f5c3ddef303ed5306ad6a458794c1
 
 John -- I'm waiting for your input on the parent email, as you seem to be
 the originator of the opinion that both are good.

It was more of a there doesn't seem much overhead to supporting both,
since the API is the same.  I think the Makefile should take an
approach more like this though:

ifdef NO_LUA
CGIT_CFLAGS += -DNO_LUA
else if defined(USE_LUAJIT)
# LuaJIT code goes here
else
# Lua code goes here
endif

Basically, use vanilla Lua by default by provide an easy way for users
to switch to LuaJIT if they want.
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


Re: lua vs luajit vs both

2014-01-14 Thread Jason A. Donenfeld


On Tue, Jan 14, 2014 at 10:08 AM, John Keeping j...@keeping.me.uk wrote:
 It was more of a there doesn't seem much overhead to supporting both,
 since the API is the same.  I think the Makefile should take an
 approach more like this though:

 ifdef NO_LUA
 CGIT_CFLAGS += -DNO_LUA
 else if defined(USE_LUAJIT)
 # LuaJIT code goes here
 else
 # Lua code goes here
 endif

Okay we've got this fancy autodetection logic now. From the README:

 If you'd like to compile without Lua support, you may use:
$ make NO_LUA=1
 And if you'd like to specify a Lua implementation, you may use:
$ make LUA_IMPLEMENTATION=JIT
 for using the LuaJIT project. Or:

$ make LUA_IMPLEMENTATION=VANILLA
 for the mainline Lua project. If you specify neither implementation, it will
 be auto-detected, preferring LuaJIT if both are present.

From cgit.mk:

 ifdef NO_LUA
 LUA_MESSAGE := linking without specified Lua support
 CGIT_CFLAGS += -DNO_LUA
 else
 LUAJIT_CFLAGS := $(shell pkg-config --cflags luajit 2/dev/null)
 LUAJIT_LIBS := $(shell pkg-config --libs luajit 2/dev/null)
 LUA_LIBS := $(shell pkg-config --libs lua 2/dev/null)
 LUA_CFLAGS := $(shell pkg-config --cflags lua 2/dev/null)
 ifeq (JIT,$(LUA_IMPLEMENTATION))
 ifeq ($(strip $(LUAJIT_LIBS)),)
  $(error LuaJIT specified via LUA_IMPLEMENTATION=JIT, but library 
 could not be found.)
 endif
 LUA_MESSAGE := linking with selected LuaJIT
 CGIT_LIBS += $(LUAJIT_LIBS)
 CGIT_CFLAGS += $(LUAJIT_CFLAGS)
 else ifeq (VANILLA,$(LUA_IMPLEMENTATION))
 ifeq ($(strip $(LUA_LIBS)),)
  $(error Lua specified via LUA_IMPLEMENTATION=VANILLA, but library 
 could not be found.)
 endif
 LUA_MESSAGE := linking with selected Lua
 CGIT_LIBS += $(LUA_LIBS)
 CGIT_LIBS += $(LUA_CFLAGS)
 else ifneq ($(strip $(LUAJIT_LIBS)),)
 LUA_MESSAGE := linking with autodetected LuaJIT
 CGIT_LIBS += $(LUAJIT_LIBS)
 CGIT_CFLAGS += $(LUAJIT_CFLAGS)
 else ifneq ($(strip $(LUA_LIBS)),)
 LUA_MESSAGE := linking with autodetected Lua
 CGIT_LIBS += $(LUA_LIBS)
 CGIT_CFLAGS += $(LUA_CFLAGS)
 else
 LUA_MESSAGE := linking without autodetected Lua support
 NO_LUA := YesPlease
 CGIT_CFLAGS += -DNO_LUA
 endif

 endif

 # Add -ldl to linker flags on non-BSD systems.
 ifeq ($(findstring BSD,$(uname_S)),)
 CGIT_LIBS += -ldl
 endif

How's this look to you? The correct way to be doing things?
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit


lua vs luajit vs both

2014-01-13 Thread Jason A. Donenfeld
Hi,

What reasons do we have for supporting lua at all? Why not just go
with luajit? It's faster and just as widely supported. The motivation
for not supporting vanilla lua is this luajit library:
http://luajit.org/ext_ffi.html . This would be a nice way of being
able to ship scripts without a big comment in the header you need to
have the luacrypto package installed for this to work, and similar.
Currently, the tree supports both lua and luajit, but I'm tempted to
chop this down to just luajit. Thoughts on this?

Jason
___
CGit mailing list
CGit@lists.zx2c4.com
http://lists.zx2c4.com/mailman/listinfo/cgit