Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for Lua 5.4 #240

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ all: # default target
#
# G N U M A K E F U N C T I O N S
#
KNOWN_APIS = 5.1 5.2 5.3
KNOWN_APIS = 5.1 5.2 5.3 5.4

# template for invoking luapath script
LUAPATH := $(d)/mk/luapath
Expand Down Expand Up @@ -40,6 +40,9 @@ lua52cpath ?= $(libdir)/lua/5.2
lua52path ?= $(datadir)/lua/5.2
lua53cpath ?= $(libdir)/lua/5.3
lua53path ?= $(datadir)/lua/5.3
lua54cpath ?= $(libdir)/lua/5.4
lua54path ?= $(datadir)/lua/5.4


AR ?= ar
RANLIB ?= ranlib
Expand All @@ -64,7 +67,7 @@ PRINT_$(d) = printf "%s = %s\n" '$(1)' '$(subst ',\\',$(2))' | $(TEE_A) '$(3)'

LAZY_$(d) = \
prefix includedir libdir datadir bindir \
lua51cpath lua51path lua52cpath lua52path lua53cpath lua53path \
lua51cpath lua51path lua52cpath lua52path lua53cpath lua53path lua54cpath lua54path \
CC ALL_CPPFLAGS CPPFLAGS ALL_CFLAGS CFLAGS ALL_LDFLAGS LDFLAGS \
ALL_SOFLAGS SOFLAGS ALL_LIB LIBS \
$(foreach API,$(KNOWN_APIS),ALL_LUA$(subst .,,$(API))_CPPFLAGS) \
Expand Down Expand Up @@ -96,7 +99,7 @@ endif

# set LUA_APIS if empty or "?"
ifeq ($(or $(strip $(LUA_APIS)),?),?)
override LUA_APIS := $(call HAVE_API_FN,5.1) $(call HAVE_API_FN,5.2) $(call HAVE_API_FN,5.3)
override LUA_APIS := $(call HAVE_API_FN,5.1) $(call HAVE_API_FN,5.2) $(call HAVE_API_FN,5.3) $(call HAVE_API_FN,5.4)
endif

define LUAXY_template
Expand Down Expand Up @@ -131,6 +134,7 @@ endef # LUAXY_template
$(eval $(call LUAXY_template,5.1))
$(eval $(call LUAXY_template,5.2))
$(eval $(call LUAXY_template,5.3))
$(eval $(call LUAXY_template,5.4))

#
# A U T O D E T E C T C O M P I L A T I O N F L A G S
Expand Down
17 changes: 15 additions & 2 deletions src/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,14 @@ $$(d)/$(1)/thread.o: $$(d)/lib/llrb.h
$$(d)/$(1)/notify.o: $$(d)/lib/notify.h

ifneq ($(1), 5.3)
ifneq ($(1), 5.4)
$$(d)/$(1)/compat53.o: $$(d)/../vendor/compat53/c-api/compat-5.3.c $$(d)/../vendor/compat53/c-api/compat-5.3.h $$(d)/config.h
$$(MKDIR) -p $$(@D)
$$(CC) $$(CFLAGS_$(d)) $$(ALL_LUA$(subst .,,$(1))_CPPFLAGS) $$(CPPFLAGS_$(d)) -c -o $$@ $$<

$$(d)/$(1)/cqueues.so: $$(d)/$(1)/compat53.o
endif
endif

.SECONDARY: liblua$(1)-cqueues cqueues$(1) cqueues

Expand All @@ -83,13 +85,15 @@ endef # BUILD_$(d)
$(eval $(call BUILD_$(d),5.1))
$(eval $(call BUILD_$(d),5.2))
$(eval $(call BUILD_$(d),5.3))
$(eval $(call BUILD_$(d),5.4))

ifneq "$(filter $(abspath $(d)/..)/%, $(abspath $(firstword $(MAKEFILE_LIST))))" ""
.SECONDARY: all all5.1 all5.2 all5.3
.SECONDARY: all all5.1 all5.2 all5.3 all5.4

all5.1: liblua5.1-cqueues
all5.2: liblua5.2-cqueues
all5.3: liblua5.3-cqueues
all5.4: liblua5.4-cqueues
all: $(foreach API,$(strip $(LUA_APIS)),all$(API))

endif
Expand Down Expand Up @@ -155,21 +159,24 @@ endef # INSTALL_$(d)
$(eval $(call INSTALL_$(d),5.1,$$(lua51cpath),$$(lua51path)))
$(eval $(call INSTALL_$(d),5.2,$$(lua52cpath),$$(lua52path)))
$(eval $(call INSTALL_$(d),5.3,$$(lua53cpath),$$(lua53path)))
$(eval $(call INSTALL_$(d),5.4,$$(lua54cpath),$$(lua54path)))

ifneq "$(filter $(abspath $(d)/..)/%, $(abspath $(firstword $(MAKEFILE_LIST))))" ""

.SECONDARY: install5.1 install5.2 install5.3 install
.SECONDARY: install5.1 install5.2 install5.3 install5.4 install

install5.1: liblua5.1-cqueues-install
install5.2: liblua5.2-cqueues-install
install5.3: liblua5.3-cqueues-install
install5.4: liblua5.4-cqueues-install
install: $(foreach API,$(strip $(LUA_APIS)),install$(API))

.PHONY: uninstall5.1 uninstall5.2 uninstall5.3 uninstall

uninstall5.1: liblua5.1-cqueues-uninstall
uninstall5.2: liblua5.2-cqueues-uninstall
uninstall5.3: liblua5.3-cqueues-uninstall
uninstall5.4: liblua5.4-cqueues-uninstall
uninstall: $(foreach API,$(strip $(LUA_APIS)),uninstall$(API))

endif
Expand Down Expand Up @@ -204,14 +211,17 @@ $(d)/help:
@echo " all5.1 - build 5.1/cqueues.so"
@echo " all5.2 - build 5.2/cqueues.so"
@echo " all5.3 - build 5.3/cqueues.so"
@echo " all5.4 - build 5.4/cqueues.so"
@echo " install - install all API targets"
@echo " install5.1 - install cqueues Lua 5.1 modules"
@echo " install5.2 - install cqueues Lua 5.2 modules"
@echo " install5.3 - install cqueues Lua 5.3 modules"
@echo " install5.4 - install cqueues Lua 5.4 modules"
@echo " uninstall - uninstall all API targets"
@echo "uninstall5.1 - uninstall cqueues Lua 5.1 modules"
@echo "uninstall5.2 - uninstall cqueues Lua 5.2 modules"
@echo "uninstall5.3 - uninstall cqueues Lua 5.3 modules"
@echo "uninstall5.4 - uninstall cqueues Lua 5.4 modules"
@echo " clean - rm binary targets, object files, debugging symbols, etc"
@echo " clean~ - clean + rm *~"
@echo " help - echo this help message"
Expand All @@ -226,10 +236,13 @@ $(d)/help:
@echo 'lua52cpath - install path for Lua 5.2 C modules ($(value lua52cpath))'
@echo ' lua53path - install path for Lua 5.3 modules ($(value lua53path))'
@echo 'lua53cpath - install path for Lua 5.3 C modules ($(value lua53cpath))'
@echo ' lua54path - install path for Lua 5.4 modules ($(value lua54path))'
@echo 'lua54cpath - install path for Lua 5.4 C modules ($(value lua54cpath))'
@echo ""
@echo 'LUA51_CPPFLAGS - cpp flags for Lua 5.1 headers ($(LUA51_CPPFLAGS))'
@echo 'LUA52_CPPFLAGS - cpp flags for Lua 5.2 headers ($(LUA52_CPPFLAGS))'
@echo 'LUA53_CPPFLAGS - cpp flags for Lua 5.3 headers ($(LUA53_CPPFLAGS))'
@echo 'LUA54_CPPFLAGS - cpp flags for Lua 5.4 headers ($(LUA54_CPPFLAGS))'
@echo ""
@echo "(NOTE: all the common GNU-style paths are supported, including"
@echo "prefix, bindir, libdir, datadir, includedir, and DESTDIR.)"
Expand Down
6 changes: 5 additions & 1 deletion src/cqueues.c
Original file line number Diff line number Diff line change
Expand Up @@ -2050,8 +2050,12 @@ static cqs_status_t cqueue_resume(lua_State *L, struct cqueue *Q, struct callinf
timer_del(Q, &T->timer);

cstack_push(Q->cstack, &(struct stackinfo){ Q, L, I->self, T->L });

#if defined(LUA_VERSION_NUM) && LUA_VERSION_NUM >= 504
int nres;
status = lua_resume(T->L, L, nargs, &nres);
#else
status = lua_resume(T->L, L, nargs);
#endif

cstack_pop(Q->cstack);

Expand Down
6 changes: 3 additions & 3 deletions vendor/compat53/c-api/compat-5.3.h
Original file line number Diff line number Diff line change
Expand Up @@ -395,11 +395,11 @@ COMPAT53_API void luaL_requiref (lua_State *L, const char *modname,


/* other Lua versions */
#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 || LUA_VERSION_NUM > 503
#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501 || LUA_VERSION_NUM > 504

# error "unsupported Lua version (i.e. not Lua 5.1, 5.2, or 5.3)"
# error "unsupported Lua version (i.e. not Lua 5.1, 5.2, 5.3, or 5.4)"

#endif /* other Lua versions except 5.1, 5.2, and 5.3 */
#endif /* other Lua versions except 5.1, 5.2, 5.3, 5.4 */



Expand Down