PKG-17264 — Python 3.15.0rc1 (master-replay) - #249
Conversation
Apply 0001–0025 against v3.15.0rc1 and add 0026 xxlimited stable-ABI link. Keep 0008 d1trimfile hotspot and AR-only 0023 branding, 0024 zlib-ng, 0026. PKG-17264
Override aggregate tk 8.6 and clang 20 so JIT/LTO match CPython 3.15. Keep gil_type; do not CF-align. PKG-17264
Use -ltcl${TCLTK_VER} -ltcl${TK_MAJOR_VER}tk${TCLTK_VER} and
$HOST-llvm-ar -> llvm-ar-$LLVM_VER so osx LTO does not load
LLVM 20.
PKG-17264
Pass /p:TclVersion=%tk%, use CONDA_PYTHON_EXE, PLATFORM=ARM64, and amd64t/arm64t for freethreading. Leave cli-64.exe as-is. PKG-17264
Use STRING cache vars; option() made EXTRA_COMPONENTS boolean OFF and broke find_package. PKG-17264
Set version/dev/sha256, list the refreshed patches, gate 0026 to win+gil_type disabled, and depend on clang-21/llvm-tools-21. PKG-17264
Enable ANACONDA_ROCKET_ENABLE_PY315. PKG-17264
Windows prefix now uses lib/python and include/python. Cross-compile and shared sysconfig follow conda-forge. Keep gil_type; skip FT/debug Jinja. PKG-17264
Drop CF-only test ! -f libpython*.so/.dylib (we ship the shared lib in python, not a libpython output). Keep Lib/ on Windows — getpath landmarks Lib\os.py. SYSCONFIG from the static build so --embed links .a, not the dylib (osx libpython-static dyld abort). PKG-17264
Without -c, python.exe treats print('Hello') as a filename. findstr
then matches Hello in the error path and the check falsely passes.
PKG-17264
cbouss
left a comment
There was a problem hiding this comment.
It's worth comparing our current patches with conda-forge. Especially, we should take https://github.com/conda-forge/python-feedstock/blob/dev/recipe/patches/0027-More-unixy-layout-for-windows.patch
| @@ -47,7 +47,7 @@ index b89d7427e3f..21df0efac12 100644 | |||
| # {HKCU,HKLM}\Software\Python\PythonCore\{winver}\PythonPath | |||
| diff --git a/PC/getpathp.c b/PC/getpathp.c | |||
There was a problem hiding this comment.
This is adding a whole file that doesn't look to be used.
There was a problem hiding this comment.
It's already too complicated to align with the conda-forge recipe in one PR. conda-forge seems to adopt many layers we didn't have in our recipe. I've already tried to port some layers (the commit) after the live session with @ifitchet from 777b793, but we didn't notice that there are more layers like this patch and installation scripts.
I would do that full alignment in #233
There was a problem hiding this comment.
This patch is a real change. Let's do it as part of rc2 though.
There was a problem hiding this comment.
On conda-forge, they have additional files being patched. This warrant a review.
There was a problem hiding this comment.
Oh, as in the CF one affects 50 files (including Serhii's xxlimited files) and ours affects 41 files.
I don't think I've ever even understood what the d1trimfile patch was meant to be doing...
There was a problem hiding this comment.
Could rename the file to align with conda-forge. Easier comparison.
| <tclExternalTommath Condition="$(TclMajorVersion) == '9'">TCL_WITH_EXTERNAL_TOMMATH;</tclExternalTommath> | ||
| <tcltkSuffix Condition="'$(TclMajorVersion)' == '8'">t</tcltkSuffix> | ||
| <tkPrefix Condition="'$(TclMajorVersion)' == '9'">tcl9</tkPrefix> | ||
| <TclshNativeFlag Condition="$(Platform) != 'Win32'">TCLSH_NATIVE="$(tcltkDir)\..\win32\bin\tclsh$(TclMajorVersion)$(TclMinorVersion)$(tcltkSuffix).exe"</TclshNativeFlag> |
There was a problem hiding this comment.
To more keys in conda-forge: tclExternalTommath and tixDir
To check if it is something to add.
There was a problem hiding this comment.
Tix (Tk Interface Extension) was last seen in Python in 3.12, https://github.com/python/cpython/blob/3.12/Doc/library/tkinter.tix.rst, after being deprecated in 3.6.
Of interest, the tixDir variables existed until python/cpython@a989b73
There was a problem hiding this comment.
We don't have libtommath (CF do) so the tk build uses its internal tommath package.
We should maybe maintain that tcltk.props line, though, if only to ensure that we do NOT set TCL_WITH_EXTERNAL_TOMMATH
ifitchet
left a comment
There was a problem hiding this comment.
I want to believe that much of the issues relate to alignment with CF rather than faults per se with our recipe...
Stop adding lib/python/site-packages via conda-site.pth; it put a version-less dir on sys.path and broke numba. Rename the Darwin cross-compile patch to 0009-cross-compile-darwin.patch to match CF.
Destination channel: ad-testing/label/py315
Links
What changed
This PR moves python-feedstock from 3.14.6 (current
master) to CPython 3.15.0rc1 in a single branch.It does not include the conda-forge alignment from #233.
Version and patches
devtag, and sha256 now point atPython-3.15.0rc1.Build settings (
conda_build_config.yaml)libtcl9tk9.0, notlibtk9.0)Build scripts
tcl9tkname; on macOS usellvm-ar-21.arm64/amd64t/arm64toutput folders.Python_FIND_ABI). Extra components are a string, not a CMakeoption()(that turned intoOFFand brokefind_package).CI (
abs.yaml)ANACONDA_ROCKET_ENABLE_PY315.ad-testing/label/py315.Out of scope
Please do not merge until we know where PBP puts artifacts on merge commits (we do not want this on
pkgs/mainyet).