Skip to content

Python 3.14.0rc1 #805

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

Open
wants to merge 45 commits into
base: main
Choose a base branch
from
Open

Python 3.14.0rc1 #805

wants to merge 45 commits into from

Conversation

xhochy
Copy link
Member

@xhochy xhochy commented Jul 11, 2025

@xhochy
Copy link
Member Author

xhochy commented Jul 11, 2025

Let's get this building, we shouldn't merge it before we have updated it to a release candidate.

@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Jul 11, 2025

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipe/meta.yaml:

  • ℹ️ The recipe is not parsable by parser conda-souschef (grayskull). This parser is not currently used by conda-forge, but may be in the future. We are collecting information to see which recipes are compatible with grayskull.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/16779745473. Examine the logs at this URL for more detail.

@xhochy
Copy link
Member Author

xhochy commented Jul 21, 2025

The following error is related to the compiler update and also shows up in Python 3.13:

In function 'memset',
    inlined from 'format_float_short' at /usr/local/src/conda/python-3.14.0b3/Python/pystrtod.c:1167:0:
/home/conda/feedstock_root/build_artifacts/python-split_1753098885527/_build_env/x86_64-conda-linux-gnu/sysroot/usr/include/bits/string3.h:81: warning: call to '__warn_memset_zero_len' declared with attribute warning: memset used with constant zero length parameter; this could be due to transposed parameters [-Wattribute-warning]
/home/conda/feedstock_root/build_artifacts/python-split_1753098885527/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_pla/bin/../lib/gcc/x86_64-conda-linux-gnu/14.3.0/../../../../x86_64-conda-linux-gnu/bin/ld: /tmp/ccrEo6GC.lto.o: in function `format_float_short':
/home/conda/feedstock_root/build_artifacts/python-split_1753098885527/_build_env/x86_64-conda-linux-gnu/sysroot/usr/include/bits/string3.h:81:(.text.hot.format_float_short+0x1c8): undefined reference to `__warn_memset_zero_len'
collect2: error: ld returned 1 exit status

@xhochy
Copy link
Member Author

xhochy commented Jul 21, 2025

Pinning the compiler to GCC 13 leads to the same error, so it could also be related to the sysroot.

@xhochy
Copy link
Member Author

xhochy commented Jul 22, 2025

@conda-forge/python This is ready for review. We should not merge before the RC is built but I would like to get reviews in as there will only be minimal changes (or none) needed for that.

@xhochy
Copy link
Member Author

xhochy commented Jul 22, 2025

Actually: Here is the RC ;)

@h-vetinari h-vetinari changed the title Python 3.14.0b4 Python 3.14.0rc1 Jul 23, 2025
Comment on lines +159 to +162
- clang-19 # [not win]
- llvm-tools-19 # [not win]
- clang 19.* # [win]
- llvm-tools 19.* # [win]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python 3.14 provides a new build option --with-tail-call-interp, which provides ~5% or more speedup:

This new interpreter type is an internal implementation detail of the CPython interpreter. It doesn’t change the visible behavior of Python programs at all. It can improve their performance, but doesn’t change anything else.

We could perhaps consider enabling it by default? 🤔

As noted in that section of the release notes, there's a performance-affecting clang bug (llvm/llvm-project#106846), which is still present in clang 19 and will affect the regular interpreter too AFAIU. So in either case we should probably use v20 here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This interpreter currently only works with Clang 19 and newer on x86-64 and AArch64 architectures. However, we expect that a future release of GCC will support this as well.

So for now, we would enable this only on macOS as we don't use clang to build Python on Linux, right?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More precisely: Only on osx-64 as we don't do PGO on osx-arm64?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AFAIU, PGO is "only" recommended for that option, but not strictly speaking necessary.

So for now, we would enable this only on macOS as we don't use clang to build Python on Linux, right?

Presumably, unless people are comfortable with switching compilers. In principle we could make it another (non-default?) variant, but we already have quite a few on this feedstock...

@djhoese
Copy link

djhoese commented Jul 24, 2025

As an impatiently waiting user, is this only waiting on reviews before merge or is this waiting on the final 3.14 release?

Thanks for everyone's work on this! Very excited!

Copy link
Member

@h-vetinari h-vetinari left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (as core, and active contributor to this feedstock)

Comment on lines 3 to 5
# Needs pthread_jit_write_protect_np
c_stdlib_version: # [osx and x86_64]
- 11.0 # [osx and x86_64]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Python requiring this is a good reason to revisit conda-forge/conda-forge.github.io#2467

@djhoese
Copy link

djhoese commented Aug 4, 2025

I'm preparing a presentation about free-threading and decided to build this locally while waiting for a merge on my linux_64 system, but when using pip it tells me that SSL isn't available in the build of Python. Is there an easy way to:

  1. Make sure this PR's builds have it.
  2. Make sure it gets added to my build when I do it locally.

Edit: conda install openssl got things working locally.

From 5248a46154b3ca6bc9b7f3546dfa40c319b16486 Mon Sep 17 00:00:00 2001
From: "Uwe L. Korn" <[email protected]>
Date: Mon, 21 Jul 2025 20:03:19 +0200
Subject: [PATCH 25/25] Use zlib-ng.h on windows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are we using zlib-ng on windows? I don't see a change in recipe.yaml

Comment on lines 88 to 100
diff --git a/PC/pyconfig.h.in b/PC/pyconfig.h.in
index 424421f6ff1..2c1b5a5b834 100644
--- a/PC/pyconfig.h.in
+++ b/PC/pyconfig.h.in
@@ -230,8 +230,6 @@ typedef _W64 int Py_ssize_t;
#endif
#endif /* MS_WIN32 && !MS_WIN64 */

-typedef int pid_t;
-
/* define some ANSI types that are not defined in earlier Win headers */
#if _MSC_VER >= 1200
/* This file only exists in VC 6.0 or higher */
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this is not there anymore, this whole patch can be dropped right?

@@ -1,9 +1,17 @@
MACOSX_SDK_VERSION: # [osx and x86_64]
- 11.0 # [osx and x86_64]
# Needs pthread_jit_write_protect_np
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pthread_jit_write_protect_np is not in the codebase right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants