diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 20335a9f..f4e08765 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -42,6 +42,10 @@ parameters: displayName: "Signature description" type: string default: '(default)' +- name: DoTailCalling + displayName: "Build with tail-calling support (3.15 and later)" + type: boolean + default: false - name: DoJIT displayName: "Build the JIT compiler (3.14 and later)" type: boolean @@ -161,7 +165,7 @@ stages: - stage: Build displayName: Build binaries pool: - vmImage: ${{ parameters.vmImage }} + vmImage: ${{ iif(eq(parameters.DoTailCalling, 'true'), 'windows-2025-vs2026', parameters.vmImage) }} jobs: - template: start-arm64vm.yml parameters: @@ -186,7 +190,10 @@ stages: ExtraOptionsFreethreaded: '--disable-gil --experimental-jit-off' ${{ else }}: ExtraOptionsFreethreaded: '--disable-gil --experimental-jit' - + ${{ if ne(parameters.DoTailCalling, 'true') }}: + TailCallingOption: '' + ${{ else }}: + TailCallingOption: '--tail-call-interp' - stage: Sign displayName: Sign binaries dependsOn: Build diff --git a/windows-release/stage-build.yml b/windows-release/stage-build.yml index 350a30a1..12d8076e 100644 --- a/windows-release/stage-build.yml +++ b/windows-release/stage-build.yml @@ -6,6 +6,7 @@ parameters: ToBeSigned: false ExtraOptions: '' ExtraOptionsFreethreaded: '--disable-gil' + TailCallingOption: '' jobs: - job: Build_Docs @@ -71,7 +72,7 @@ jobs: Platform: x64 Configuration: Release _HostPython: .\python - ExtraOptions: ${{ parameters.ExtraOptions }} + ExtraOptions: ${{ parameters.ExtraOptions }} ${{ parameters.TailCallingOption }} ${{ if eq(parameters.ToBeSigned, 'true') }}: Artifact: unsigned_amd64 ${{ else }}: @@ -131,7 +132,7 @@ jobs: Platform: x64 Configuration: Release _HostPython: .\python - ExtraOptions: ${{ parameters.ExtraOptionsFreethreaded }} + ExtraOptions: ${{ parameters.ExtraOptionsFreethreaded }} ${{ parameters.TailCallingOption }} ${{ if eq(parameters.ToBeSigned, 'true') }}: Artifact: unsigned_amd64_t ${{ else }}: @@ -185,7 +186,7 @@ jobs: Platform: x64 _HostPython: .\python PythonExePattern: python.exe - ExtraOptions: ${{ parameters.ExtraOptions }} + ExtraOptions: ${{ parameters.ExtraOptions }} ${{ parameters.TailCallingOption }} ${{ if eq(parameters.ToBeSigned, 'true') }}: Artifact: unsigned_amd64 ${{ else }}: @@ -197,7 +198,7 @@ jobs: Platform: x64 _HostPython: .\python PythonExePattern: python3*t.exe - ExtraOptions: ${{ parameters.ExtraOptionsFreethreaded }} + ExtraOptions: ${{ parameters.ExtraOptionsFreethreaded }} ${{ parameters.TailCallingOption }} ${{ if eq(parameters.ToBeSigned, 'true') }}: Artifact: unsigned_amd64_t ${{ else }}: