mirror of https://github.com/swig/swig
Refactor python no-gil detection
Also additional python interpreter flags cleanup, use PYFLAGS consistently and remove PYTHONFLAGS.
This commit is contained in:
parent
a75b7b8b9c
commit
1b09f4f111
|
@ -130,7 +130,7 @@ jobs:
|
|||
VER: '3.13'
|
||||
CSTD: gnu99
|
||||
- SWIGLANG: python
|
||||
VER: '3.13t'
|
||||
VER: '3.13t' # no-gil testing
|
||||
CSTD: gnu99
|
||||
- SWIGLANG: python
|
||||
PY2: 2
|
||||
|
|
|
@ -224,5 +224,3 @@ Examples/r/*/.RData
|
|||
# Scilab
|
||||
Examples/test-suite/scilab/*/
|
||||
loader.sce
|
||||
|
||||
/bin/
|
||||
|
|
|
@ -1274,17 +1274,15 @@ php_clean:
|
|||
##### PYTHON ######
|
||||
##################################################################
|
||||
|
||||
PYTHON_FLAGS =
|
||||
|
||||
# Make sure these locate your Python installation
|
||||
ifneq (,$(PY2))
|
||||
PYTHON_INCLUDE= $(DEFS) @PYINCLUDE@
|
||||
PYTHON_LIB = @PYLIB@
|
||||
PYTHON = @PYTHON@ $(PYTHON_FLAGS)
|
||||
PYTHON = @PYTHON@
|
||||
else
|
||||
PYTHON_INCLUDE= $(DEFS) @PY3INCLUDE@
|
||||
PYTHON_LIB = @PY3LIB@
|
||||
PYTHON = @PYTHON3@ $(PYTHON_FLAGS)
|
||||
PYTHON = @PYTHON3@
|
||||
endif
|
||||
|
||||
# Extra Python specific linking options
|
||||
|
@ -1302,9 +1300,10 @@ ifneq (,$(PY_ABI_VER))
|
|||
PYTHON_SO = .abi3@PYTHON_SO@
|
||||
EXTRA_CPPFLAGS := -DPy_LIMITED_API=$(shell printf "0x%02X%02X0000" $(subst ., ,$(PY_ABI_VER)))
|
||||
else
|
||||
PYTHON_SO = @PYTHON_SO@
|
||||
PYTHON_SO = @PYTHON_SO@
|
||||
endif
|
||||
|
||||
PYNOGIL = @PYNOGIL@
|
||||
PYCODESTYLE = @PYCODESTYLE@
|
||||
PYCODESTYLE_FLAGS = --ignore=E252,E30,E402,E501,E731,W291,W391
|
||||
PYABI3AUDIT = @PYABI3AUDIT@
|
||||
|
@ -1368,7 +1367,7 @@ python_run: $(PYSCRIPT)
|
|||
ifneq (,$(PYCODESTYLE))
|
||||
$(COMPILETOOL) $(PYCODESTYLE) $(PYCODESTYLE_FLAGS) $(PYSCRIPT)
|
||||
endif
|
||||
env PYTHONPATH=$$PWD $(RUNTOOL) $(PYTHON) $(PYFLAGS) $(PYSCRIPT) $(RUNPIPE)
|
||||
env PYTHONPATH=$$PWD $(RUNTOOL) $(PYTHON) $(PYNOGIL) $(PYFLAGS) $(PYSCRIPT) $(RUNPIPE)
|
||||
|
||||
ifneq (,$(SRCDIR))
|
||||
$(RUNME).py: $(SRCDIR)$(RUNME).py
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
#######################################################################
|
||||
|
||||
ifneq (,$(PY2))
|
||||
PYBIN = @PYTHON@
|
||||
PYTHON = @PYTHON@
|
||||
else
|
||||
PYBIN = @PYTHON3@
|
||||
PYTHON = @PYTHON3@
|
||||
endif
|
||||
|
||||
LANGUAGE = python
|
||||
PYTHON = $(PYBIN)
|
||||
PYNOGIL = @PYNOGIL@
|
||||
SCRIPTSUFFIX = _runme.py
|
||||
PYCODESTYLE = @PYCODESTYLE@
|
||||
PYCODESTYLE_FLAGS = --ignore=E252,E30,E402,E501,E731,E741,W291,W391
|
||||
|
@ -168,7 +168,7 @@ endif
|
|||
# a file is found which has _runme.py appended after the testcase name.
|
||||
run_testcase = \
|
||||
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
||||
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=.:$(srcdir):$$PYTHONPATH $(RUNTOOL) $(PYTHON) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
|
||||
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=.:$(srcdir):$$PYTHONPATH $(RUNTOOL) $(PYTHON) $(PYNOGIL) $(PYFLAGS) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
|
||||
fi
|
||||
|
||||
# Clean: remove the generated .py file
|
||||
|
@ -189,5 +189,5 @@ hugemod:
|
|||
perl hugemod.pl $(hugemod_runme)
|
||||
$(MAKE) hugemod_a.cpptest
|
||||
$(MAKE) hugemod_b.cpptest
|
||||
sh -c "time $(PYTHON) $(hugemod_runme)"
|
||||
sh -c "time $(PYTHON) $(hugemod_runme)"
|
||||
sh -c "time $(PYTHON) $(PYNOGIL) $(PYFLAGS) $(hugemod_runme)"
|
||||
sh -c "time $(PYTHON) $(PYNOGIL) $(PYFLAGS) $(hugemod_runme)"
|
||||
|
|
|
@ -4,7 +4,7 @@ from langobj import *
|
|||
|
||||
x = 256*256+1
|
||||
|
||||
# avoid immortal object in no-gil scenario
|
||||
# avoid an immortal object for the ref count check to always work such as when using no-gil
|
||||
x += 1
|
||||
|
||||
rx = sys.getrefcount(x)
|
||||
|
|
|
@ -2047,11 +2047,11 @@ else
|
|||
PYVER=0
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([for $PYTHON3 GIL is enabled])
|
||||
PYGIL=`($PYTHON3 -c "import sysconfig; print(not bool(sysconfig.get_config_var('Py_GIL_DISABLED')))") 2>/dev/null`
|
||||
AC_MSG_CHECKING([if $PYTHON3 GIL can be disabled])
|
||||
PYGIL=`($PYTHON3 -c "import sysconfig; print('yes' if bool(sysconfig.get_config_var('Py_GIL_DISABLED')) else 'no')") 2>/dev/null`
|
||||
AC_MSG_RESULT($PYGIL)
|
||||
if test x"$PYGIL" = x"False"; then
|
||||
PYTHON3="$PYTHON3 -X gil=0"
|
||||
if test x"$PYGIL" = x"yes"; then
|
||||
PYNOGIL="-X gil=0"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -2181,6 +2181,7 @@ else
|
|||
*)PYTHON3DYNAMICLINKING="";;
|
||||
esac
|
||||
|
||||
AC_SUBST(PYNOGIL)
|
||||
AC_SUBST(PY3INCLUDE)
|
||||
AC_SUBST(PY3LIB)
|
||||
AC_SUBST(PY3LINK)
|
||||
|
|
Loading…
Reference in New Issue