Skip to content

Python 3.15.0b3#232

Draft
skupr-anaconda wants to merge 2 commits into
masterfrom
py315b3
Draft

Python 3.15.0b3#232
skupr-anaconda wants to merge 2 commits into
masterfrom
py315b3

Conversation

@skupr-anaconda

Copy link
Copy Markdown

Destination channel: main

Links

Explanation of changes:

Notes:

@skupr-anaconda skupr-anaconda self-assigned this Jun 25, 2026
@skupr-anaconda

Copy link
Copy Markdown
Author

@ifitchet I was able to build python 3.15.0b3 on linux-64 locally:

INFO :: The inputs making up the hashes for the built packages are as follows:
{
  "libpython-static-3.15.0b3-h7354ed3_0_cp315t.conda": {
    "recipe": {
      "__glibc": "__glibc >=2.28,<3.0.a0",
      "c_compiler": "gcc",
      "c_compiler_version": "14.3.0",
      "c_stdlib": "sysroot",
      "c_stdlib_version": "2.28",
      "channel_targets": "defaults",
      "cxx_compiler": "gxx",
      "cxx_compiler_version": "14.3.0",
      "target_platform": "linux-64"
    }
  },
  "libpython-static-3.15.0b3-h7354ed3_100_cp315.conda": {
    "recipe": {
      "__glibc": "__glibc >=2.28,<3.0.a0",
      "c_compiler": "gcc",
      "c_compiler_version": "14.3.0",
      "c_stdlib": "sysroot",
      "c_stdlib_version": "2.28",
      "channel_targets": "defaults",
      "cxx_compiler": "gxx",
      "cxx_compiler_version": "14.3.0",
      "target_platform": "linux-64"
    }
  },
  "python-3.15.0b3-h1927d3b_0_cp315t.conda": {
    "recipe": {
      "__glibc": "__glibc >=2.28,<3.0.a0",
      "bzip2": "1",
      "c_compiler": "gcc",
      "c_compiler_version": "14.3.0",
      "c_stdlib": "sysroot",
      "c_stdlib_version": "2.28",
      "channel_targets": "defaults",
      "cxx_compiler": "gxx",
      "cxx_compiler_version": "14.3.0",
      "expat": "2",
      "gil_type": "disabled",
      "libffi": "3.4",
      "libmpdec": "4",
      "libuuid": "1",
      "ncurses": "6",
      "openssl": "3",
      "readline": "8",
      "sqlite": "3",
      "target_platform": "linux-64",
      "tk": "8.6",
      "xorg_libx11": "1",
      "xorg_xorgproto": "2024",
      "xz": "5",
      "zlib": "1",
      "zstd": "1.5"
    }
  },
  "python-3.15.0b3-h4bdf6f9_100_cp315.conda": {
    "recipe": {
      "__glibc": "__glibc >=2.28,<3.0.a0",
      "bzip2": "1",
      "c_compiler": "gcc",
      "c_compiler_version": "14.3.0",
      "c_stdlib": "sysroot",
      "c_stdlib_version": "2.28",
      "channel_targets": "defaults",
      "cxx_compiler": "gxx",
      "cxx_compiler_version": "14.3.0",
      "expat": "2",
      "gil_type": "normal",
      "libffi": "3.4",
      "libmpdec": "4",
      "libuuid": "1",
      "ncurses": "6",
      "openssl": "3",
      "readline": "8",
      "sqlite": "3",
      "target_platform": "linux-64",
      "tk": "8.6",
      "xorg_libx11": "1",
      "xorg_xorgproto": "2024",
      "xz": "5",
      "zlib": "1",
      "zstd": "1.5"
    }
  },
  "python-freethreading-3.15.0b3-py315hf025e8c_0.conda": {
    "recipe": {
      "channel_targets": "defaults",
      "gil_type": "disabled"
    }
  },
  "python-gil-3.15.0b3-py315h13117d0_100.conda": {
    "recipe": {
      "channel_targets": "defaults",
      "gil_type": "normal"
    }
  },
  "python-jit-3.15.0b3-py315h0c7ef39_100.conda": {
    "recipe": {
      "__unix": "__unix",
      "channel_targets": "defaults",
      "gil_type": "normal"
    }
  }
}


####################################################################################
Resource usage summary:

Total time: 1:46:23.4
CPU usage: sys=0:07:15.0, user=1:25:52.4
Maximum memory usage observed: 2.1G
Total disk usage observed (not including envs): 5.8M

I'm waiting for AnacondaRecipes/python_abi-feedstock#6 to be unblocked on PBP

Comment on lines 18 to +22
-if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"
+rem if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"

if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" (
if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" NEQ "AMD64" (
if /I "%target%"=="Clean" set clean=true
if /I "%target%"=="CleanAll" set clean=true

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

This looks wrong, btw. Our patch shouldn't be introducing new things -- although I got the same thing when I tried to regenerate the patches.

Maybe it works because "Hunk already applied" or something we'd need to look closely at the build output.

The first bit rem ... seems OK as that is in the original 0002-*.patch. But that is the only change in the original patch!

The second bit looks like git done goofed:

$git diff v3.14.6 v3.15.0b3 -- PCbuild/build.bat 
...
@@ -115,6 +120,9 @@ if "%UseJIT%" NEQ "true" set IncludeLLVM=false
 
 if "%IncludeExternals%"=="true" call "%dir%get_externals.bat"
 
+if /I "%target%"=="Clean" set clean=true
+if /I "%target%"=="CleanAll" set clean=true
+
 if "%do_pgo%" EQU "true" if "%platf%" EQU "x64" (
     if "%PROCESSOR_ARCHITEW6432%" NEQ "AMD64" if "%PROCESSOR_ARCHITECTURE%" NEQ "AMD64" (
         echo.ERROR: Cannot cross-compile with PGO 
...

So the if /I ... bits were in the original bump from 3.14.6 to 3.15.0b3. So they should not also be in our patch.

My suspicion is that git sees the if /I lines as having changed with the 3 lines of context and has included them.

However, it looks as though it has also deleted the if "%do_pga%" ... lines. Which would be bad... Did it echo "Cannot cross-compile with PGO" ??

Given that it built... 🤷

Comment on lines 39 to 1199
@@ -1197,5 +1197,5 @@ index 00000000000..a73ea8a0e91
+ return hPython3 != NULL;
+}
--

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Similarly, here. In the original patch, the only change is to if os_name ...

$git diff v3.14.6 v3.15.0b3 -- Modules/getpath.py
...
@@ -697,12 +691,13 @@ def search_up(prefix, *landmarks, test=isfile):
             library_dir = dirname(library)
         else:
             library_dir = executable_dir
-        pythonpath.append(joinpath(library_dir, ZIP_LANDMARK))
+        stdlib_zip = joinpath(library_dir, ZIP_LANDMARK)
     elif build_prefix:
         # QUIRK: POSIX uses the default prefix when in the build directory
-        pythonpath.append(joinpath(PREFIX, ZIP_LANDMARK))
+        stdlib_zip = joinpath(PREFIX, ZIP_LANDMARK)
     else:
-        pythonpath.append(joinpath(base_prefix, ZIP_LANDMARK))
+        stdlib_zip = joinpath(base_prefix, ZIP_LANDMARK)
+    pythonpath.append(stdlib_zip)
 
     if os_name == 'nt' and use_environment and winreg:
         # QUIRK: Windows also lists paths in the registry. Paths are stored
...

where you can see bits of the 3.14.6 -> 3.15.0b3 changes sneaking in.

🤔

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.

2 participants