mirror of
https://github.com/Nuitka/Nuitka.git
synced 2025-12-14 20:35:49 +01:00
Merge tag '2.8.9' into develop
This commit is contained in:
6
debian/changelog
vendored
6
debian/changelog
vendored
@@ -4,6 +4,12 @@ nuitka (4.0~rc2+ds-1) unstable; urgency=medium
|
|||||||
|
|
||||||
-- Kay Hayen <kay.hayen@gmail.com> Wed, 26 Nov 2025 11:21:52 +0000
|
-- Kay Hayen <kay.hayen@gmail.com> Wed, 26 Nov 2025 11:21:52 +0000
|
||||||
|
|
||||||
|
nuitka (2.8.9+ds-1) unstable; urgency=medium
|
||||||
|
|
||||||
|
* New upstream hotfix release.
|
||||||
|
|
||||||
|
-- Kay Hayen <kay.hayen@gmail.com> Fri, 28 Nov 2025 13:58:44 +0000
|
||||||
|
|
||||||
nuitka (2.8.8+ds-1) unstable; urgency=medium
|
nuitka (2.8.8+ds-1) unstable; urgency=medium
|
||||||
|
|
||||||
* New upstream hotfix release.
|
* New upstream hotfix release.
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ NUITKA_MAY_BE_UNUSED static bool UNPACK_ITERATOR_CHECK(PyThreadState *tstate,
|
|||||||
SET_EXCEPTION_PRESERVATION_STATE_FROM_TYPE0_FORMAT1(tstate, exception_state, PyExc_ValueError,
|
SET_EXCEPTION_PRESERVATION_STATE_FROM_TYPE0_FORMAT1(tstate, exception_state, PyExc_ValueError,
|
||||||
"too many values to unpack (expected %d)", expected);
|
"too many values to unpack (expected %d)", expected);
|
||||||
#else
|
#else
|
||||||
int gotten = -1;
|
Py_ssize_t gotten = -1;
|
||||||
|
|
||||||
if (Py_TYPE(iterator) == &PyTupleIter_Type) {
|
if (Py_TYPE(iterator) == &PyTupleIter_Type) {
|
||||||
gotten = PyTuple_GET_SIZE(((_PyTupleIterObject *)iterator)->it_seq);
|
gotten = PyTuple_GET_SIZE(((_PyTupleIterObject *)iterator)->it_seq);
|
||||||
|
|||||||
@@ -132,10 +132,12 @@ def _call_env_subst(env, string, *args, **kw):
|
|||||||
|
|
||||||
def smart_link(source, target, env, for_signature):
|
def smart_link(source, target, env, for_signature):
|
||||||
import SCons.Tool.cxx
|
import SCons.Tool.cxx
|
||||||
import SCons.Tool.FortranCommon
|
# Nuitka: Avoid unused tools
|
||||||
|
# import SCons.Tool.FortranCommon
|
||||||
|
|
||||||
has_cplusplus = SCons.Tool.cxx.iscplusplus(source)
|
has_cplusplus = SCons.Tool.cxx.iscplusplus(source)
|
||||||
has_fortran = SCons.Tool.FortranCommon.isfortran(env, source)
|
# Nuitka: Avoid unused tools
|
||||||
|
has_fortran = False
|
||||||
has_d = isD(env, source)
|
has_d = isD(env, source)
|
||||||
if has_cplusplus and has_fortran and not has_d:
|
if has_cplusplus and has_fortran and not has_d:
|
||||||
global issued_mixed_link_warning
|
global issued_mixed_link_warning
|
||||||
|
|||||||
@@ -41,23 +41,10 @@ import SCons.Defaults
|
|||||||
import SCons.Tool
|
import SCons.Tool
|
||||||
import SCons.Util
|
import SCons.Util
|
||||||
|
|
||||||
# TODO: should this be synced with SCons/Platform/mingw.py:MINGW_DEFAULTPATHS
|
# Nuitka: Only use version specific paths if possible.
|
||||||
# i.e. either keep the same, or make sure there's only one?
|
# Cygwin and msys2 should be avoided.
|
||||||
mingw_base_paths = [
|
mingw_base_paths = []
|
||||||
r'c:\MinGW\bin',
|
mingw_paths = []
|
||||||
r'C:\cygwin64\bin',
|
|
||||||
r'C:\msys64',
|
|
||||||
r'C:\msys64\mingw64\bin',
|
|
||||||
r'C:\cygwin\bin',
|
|
||||||
r'C:\msys',
|
|
||||||
# Chocolatey mingw (pkg name for MinGW-w64) does not use ChocolateyToolsLocation
|
|
||||||
r'C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin',
|
|
||||||
]
|
|
||||||
# Chocolatey msys2 uses envvar ChocolateyToolsLocation to base the install
|
|
||||||
# location (unless the user supplied additional params). Try to reproduce:
|
|
||||||
choco = os.environ.get('ChocolateyToolsLocation')
|
|
||||||
if choco:
|
|
||||||
mingw_base_paths.append(choco + r'\msys64\bin')
|
|
||||||
|
|
||||||
|
|
||||||
def shlib_generator(target, source, env, for_signature):
|
def shlib_generator(target, source, env, for_signature):
|
||||||
@@ -66,10 +53,15 @@ def shlib_generator(target, source, env, for_signature):
|
|||||||
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
|
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
|
||||||
if dll: cmd.extend(['-o', dll])
|
if dll: cmd.extend(['-o', dll])
|
||||||
|
|
||||||
cmd.extend(['$SOURCES', '$_LIBDIRFLAGS', '$_LIBFLAGS'])
|
# Nuitka: Use linker file
|
||||||
|
tmp_linker_filename = "@%s" % (
|
||||||
|
os.path.join(env.source_dir, "@link_input.txt").replace(os.path.sep, "/"),
|
||||||
|
)
|
||||||
|
cmd.extend([tmp_linker_filename, '$_LIBDIRFLAGS', '$_LIBFLAGS'])
|
||||||
|
|
||||||
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
|
# Nuitka: Disable implib here, we do it manually.
|
||||||
if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
|
# implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
|
||||||
|
# if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
|
||||||
|
|
||||||
def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
|
def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
|
||||||
insert_def = env.subst("$WINDOWS_INSERT_DEF")
|
insert_def = env.subst("$WINDOWS_INSERT_DEF")
|
||||||
@@ -130,19 +122,13 @@ SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
|
|||||||
key_program = 'mingw32-make'
|
key_program = 'mingw32-make'
|
||||||
|
|
||||||
|
|
||||||
def find_version_specific_mingw_paths():
|
# Nuitka: We try to find matching ones only.
|
||||||
r"""
|
def find_version_specific_mingw_paths(env):
|
||||||
One example of default mingw install paths is:
|
return []
|
||||||
C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev2\mingw64\bin
|
|
||||||
|
|
||||||
Use glob'ing to find such and add to mingw_base_paths
|
|
||||||
"""
|
|
||||||
new_paths = glob.glob(r"C:\mingw-w64\*\mingw64\bin")
|
|
||||||
|
|
||||||
return new_paths
|
|
||||||
|
|
||||||
|
|
||||||
_mingw_all_paths = None
|
|
||||||
|
_mingw_all_paths = []
|
||||||
|
|
||||||
def get_mingw_paths():
|
def get_mingw_paths():
|
||||||
global _mingw_all_paths
|
global _mingw_all_paths
|
||||||
@@ -151,8 +137,10 @@ def get_mingw_paths():
|
|||||||
return _mingw_all_paths
|
return _mingw_all_paths
|
||||||
|
|
||||||
def generate(env):
|
def generate(env):
|
||||||
|
global mingw_paths
|
||||||
# Check for reasoanble mingw default paths
|
# Check for reasoanble mingw default paths
|
||||||
mingw_paths = get_mingw_paths()
|
# Nuitks: Do not do that anymore.
|
||||||
|
# mingw_paths += find_version_specific_mingw_paths(env)
|
||||||
|
|
||||||
mingw = SCons.Tool.find_program_path(env, key_program, default_paths=mingw_paths)
|
mingw = SCons.Tool.find_program_path(env, key_program, default_paths=mingw_paths)
|
||||||
if mingw:
|
if mingw:
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ static void _createGlobalConstants(PyThreadState *tstate) {
|
|||||||
// The empty name means global.
|
// The empty name means global.
|
||||||
loadConstantsBlob(tstate, &global_constants[0], "");
|
loadConstantsBlob(tstate, &global_constants[0], "");
|
||||||
|
|
||||||
#if _NUITKA_EXE_MODE
|
#if _NUITKA_EXE_MODE || _NUITKA_DLL_MODE
|
||||||
/* Set the "sys.executable" path to the original CPython executable or point to inside the
|
/* Set the "sys.executable" path to the original CPython executable or point to inside the
|
||||||
distribution for standalone. */
|
distribution for standalone. */
|
||||||
Nuitka_SysSetObject(
|
Nuitka_SysSetObject(
|
||||||
|
|||||||
@@ -9,6 +9,11 @@
|
|||||||
- depends:
|
- depends:
|
||||||
- 'asyncio'
|
- 'asyncio'
|
||||||
|
|
||||||
|
- module-name: '_ctypes' # checksum: b31a8f6b
|
||||||
|
implicit-imports:
|
||||||
|
- depends:
|
||||||
|
- 'ctypes._layout'
|
||||||
|
|
||||||
- module-name: '_curses_panel' # checksum: c9b072ec
|
- module-name: '_curses_panel' # checksum: c9b072ec
|
||||||
implicit-imports:
|
implicit-imports:
|
||||||
- depends:
|
- depends:
|
||||||
|
|||||||
Reference in New Issue
Block a user