Skip to content

Commit 0354314

Browse files
committed
Add Windows release options for JIT builds
1 parent bb20eda commit 0354314

2 files changed

Lines changed: 126 additions & 18 deletions

File tree

windows-release/azure-pipelines.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,18 @@ parameters:
4949
displayName: "Include free-threaded builds (3.13 and later)"
5050
type: boolean
5151
default: true
52+
- name: DoJIT
53+
displayName: "Build the JIT compiler (3.14 and later)"
54+
type: boolean
55+
default: false
56+
- name: DoJITEnabled
57+
displayName: "Enable the JIT compiler by default (not used yet)"
58+
type: boolean
59+
default: false
60+
- name: DoJITFreethreaded
61+
displayName: "Build the JIT compiler for free-threaded builds (not used yet)"
62+
type: boolean
63+
default: false
5264
- name: DoARM64
5365
displayName: "Publish ARM64 build (3.11 and later)"
5466
type: boolean
@@ -137,6 +149,9 @@ stages:
137149
- template: stage-build.yml
138150
parameters:
139151
DoFreethreaded: ${{ parameters.DoFreethreaded }}
152+
DoJIT: ${{ parameters.DoJIT }}
153+
DoJITEnabled: ${{ parameters.DoJITEnabled }}
154+
DoJITFreethreaded: ${{ parameters.DoJITFreethreaded }}
140155
DoPGO: ${{ parameters.DoPGO }}
141156
DoPGOARM64: ${{ parameters.DoPGOARM64 }}
142157
${{ if and(parameters.SigningCertificate, ne(parameters.SigningCertificate, 'Unsigned')) }}:

windows-release/stage-build.yml

Lines changed: 111 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ parameters:
44
DoPGOARM64: true
55
DoFreethreaded: false
66
ToBeSigned: false
7+
DoJIT: false
8+
DoJITEnabled: false
9+
DoJITFreethreaded: false
710

811
jobs:
912
- job: Build_Docs
@@ -52,7 +55,12 @@ jobs:
5255
Platform: x86
5356
Configuration: Release
5457
_HostPython: .\python
55-
ExtraOptions: ''
58+
${{ if ne(parameters.DoJIT, 'true') }}:
59+
ExtraOptions: ''
60+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
61+
ExtraOptions: '--experimental-jit-off'
62+
${{ else }}:
63+
ExtraOptions: '--experimental-jit'
5664
${{ if eq(parameters.ToBeSigned, 'true') }}:
5765
Artifact: unsigned_win32
5866
${{ else }}:
@@ -63,7 +71,12 @@ jobs:
6371
Platform: x86
6472
Configuration: Debug
6573
_HostPython: .\python
66-
ExtraOptions: ''
74+
${{ if ne(parameters.DoJIT, 'true') }}:
75+
ExtraOptions: ''
76+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
77+
ExtraOptions: '--experimental-jit-off'
78+
${{ else }}:
79+
ExtraOptions: '--experimental-jit'
6780
Artifact: bin_win32_d
6881
${{ if ne(parameters.DoPGO, 'true') }}:
6982
amd64:
@@ -72,7 +85,12 @@ jobs:
7285
Platform: x64
7386
Configuration: Release
7487
_HostPython: .\python
75-
ExtraOptions: ''
88+
${{ if ne(parameters.DoJIT, 'true') }}:
89+
ExtraOptions: ''
90+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
91+
ExtraOptions: '--experimental-jit-off'
92+
${{ else }}:
93+
ExtraOptions: '--experimental-jit'
7694
${{ if eq(parameters.ToBeSigned, 'true') }}:
7795
Artifact: unsigned_amd64
7896
${{ else }}:
@@ -83,7 +101,12 @@ jobs:
83101
Platform: x64
84102
Configuration: Debug
85103
_HostPython: .\python
86-
ExtraOptions: ''
104+
${{ if ne(parameters.DoJIT, 'true') }}:
105+
ExtraOptions: ''
106+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
107+
ExtraOptions: '--experimental-jit-off'
108+
${{ else }}:
109+
ExtraOptions: '--experimental-jit'
87110
Artifact: bin_amd64_d
88111
${{ if or(ne(parameters.DoPGO, 'true'), ne(parameters.DoPGOARM64, 'true')) }}:
89112
arm64:
@@ -92,7 +115,12 @@ jobs:
92115
Platform: ARM64
93116
Configuration: Release
94117
_HostPython: python
95-
ExtraOptions: ''
118+
${{ if ne(parameters.DoJIT, 'true') }}:
119+
ExtraOptions: ''
120+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
121+
ExtraOptions: '--experimental-jit-off'
122+
${{ else }}:
123+
ExtraOptions: '--experimental-jit'
96124
${{ if eq(parameters.ToBeSigned, 'true') }}:
97125
Artifact: unsigned_arm64
98126
${{ else }}:
@@ -103,7 +131,12 @@ jobs:
103131
Platform: ARM64
104132
Configuration: Debug
105133
_HostPython: python
106-
ExtraOptions: ''
134+
${{ if ne(parameters.DoJIT, 'true') }}:
135+
ExtraOptions: ''
136+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
137+
ExtraOptions: '--experimental-jit-off'
138+
${{ else }}:
139+
ExtraOptions: '--experimental-jit'
107140
Artifact: bin_arm64_d
108141
${{ if eq(parameters.DoFreethreaded, 'true') }}:
109142
win32_t:
@@ -112,7 +145,12 @@ jobs:
112145
Platform: x86
113146
Configuration: Release
114147
_HostPython: .\python
115-
ExtraOptions: --disable-gil
148+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
149+
ExtraOptions: '--disable-gil'
150+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
151+
ExtraOptions: '--disable-gil --experimental-jit-off'
152+
${{ else }}:
153+
ExtraOptions: '--disable-gil --experimental-jit'
116154
${{ if eq(parameters.ToBeSigned, 'true') }}:
117155
Artifact: unsigned_win32_t
118156
${{ else }}:
@@ -123,7 +161,12 @@ jobs:
123161
Platform: x86
124162
Configuration: Debug
125163
_HostPython: .\python
126-
ExtraOptions: --disable-gil
164+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
165+
ExtraOptions: '--disable-gil'
166+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
167+
ExtraOptions: '--disable-gil --experimental-jit-off'
168+
${{ else }}:
169+
ExtraOptions: '--disable-gil --experimental-jit'
127170
Artifact: bin_win32_td
128171
${{ if ne(parameters.DoPGO, 'true') }}:
129172
amd64_t:
@@ -132,7 +175,12 @@ jobs:
132175
Platform: x64
133176
Configuration: Release
134177
_HostPython: .\python
135-
ExtraOptions: --disable-gil
178+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
179+
ExtraOptions: '--disable-gil'
180+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
181+
ExtraOptions: '--disable-gil --experimental-jit-off'
182+
${{ else }}:
183+
ExtraOptions: '--disable-gil --experimental-jit'
136184
${{ if eq(parameters.ToBeSigned, 'true') }}:
137185
Artifact: unsigned_amd64_t
138186
${{ else }}:
@@ -143,7 +191,12 @@ jobs:
143191
Platform: x64
144192
Configuration: Debug
145193
_HostPython: .\python
146-
ExtraOptions: --disable-gil
194+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
195+
ExtraOptions: '--disable-gil'
196+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
197+
ExtraOptions: '--disable-gil --experimental-jit-off'
198+
${{ else }}:
199+
ExtraOptions: '--disable-gil --experimental-jit'
147200
Artifact: bin_amd64_td
148201
${{ if or(ne(parameters.DoPGO, 'true'), ne(parameters.DoPGOARM64, 'true')) }}:
149202
arm64_t:
@@ -152,7 +205,12 @@ jobs:
152205
Platform: ARM64
153206
Configuration: Release
154207
_HostPython: python
155-
ExtraOptions: --disable-gil
208+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
209+
ExtraOptions: '--disable-gil'
210+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
211+
ExtraOptions: '--disable-gil --experimental-jit-off'
212+
${{ else }}:
213+
ExtraOptions: '--disable-gil --experimental-jit'
156214
${{ if eq(parameters.ToBeSigned, 'true') }}:
157215
Artifact: unsigned_arm64_t
158216
${{ else }}:
@@ -163,7 +221,12 @@ jobs:
163221
Platform: ARM64
164222
Configuration: Debug
165223
_HostPython: python
166-
ExtraOptions: --disable-gil
224+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
225+
ExtraOptions: '--disable-gil'
226+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
227+
ExtraOptions: '--disable-gil --experimental-jit-off'
228+
${{ else }}:
229+
ExtraOptions: '--disable-gil --experimental-jit'
167230
Artifact: bin_arm64_td
168231

169232
steps:
@@ -188,7 +251,12 @@ jobs:
188251
Platform: x64
189252
_HostPython: .\python
190253
PythonExePattern: python.exe
191-
ExtraOptions: ''
254+
${{ if ne(parameters.DoJIT, 'true') }}:
255+
ExtraOptions: ''
256+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
257+
ExtraOptions: '--experimental-jit-off'
258+
${{ else }}:
259+
ExtraOptions: '--experimental-jit'
192260
${{ if eq(parameters.ToBeSigned, 'true') }}:
193261
Artifact: unsigned_amd64
194262
${{ else }}:
@@ -200,7 +268,12 @@ jobs:
200268
Platform: x64
201269
_HostPython: .\python
202270
PythonExePattern: python3*t.exe
203-
ExtraOptions: --disable-gil
271+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
272+
ExtraOptions: '--disable-gil'
273+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
274+
ExtraOptions: '--disable-gil --experimental-jit-off'
275+
${{ else }}:
276+
ExtraOptions: '--disable-gil --experimental-jit'
204277
${{ if eq(parameters.ToBeSigned, 'true') }}:
205278
Artifact: unsigned_amd64_t
206279
${{ else }}:
@@ -233,7 +306,12 @@ jobs:
233306
arm64:
234307
Name: arm64
235308
PythonExePattern: python.exe
236-
ExtraOptions: ''
309+
${{ if ne(parameters.DoJIT, 'true') }}:
310+
ExtraOptions: ''
311+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
312+
ExtraOptions: '--experimental-jit-off'
313+
${{ else }}:
314+
ExtraOptions: '--experimental-jit'
237315
${{ if eq(parameters.ToBeSigned, 'true') }}:
238316
Artifact: unsigned_arm64
239317
${{ else }}:
@@ -242,7 +320,12 @@ jobs:
242320
arm64_t:
243321
Name: arm64_t
244322
PythonExePattern: python3*t.exe
245-
ExtraOptions: --disable-gil
323+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
324+
ExtraOptions: '--disable-gil'
325+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
326+
ExtraOptions: '--disable-gil --experimental-jit-off'
327+
${{ else }}:
328+
ExtraOptions: '--disable-gil --experimental-jit'
246329
${{ if eq(parameters.ToBeSigned, 'true') }}:
247330
Artifact: unsigned_arm64_t
248331
${{ else }}:
@@ -313,7 +396,12 @@ jobs:
313396
arm64:
314397
Name: arm64
315398
PythonExePattern: python.exe
316-
ExtraOptions: ''
399+
${{ if ne(parameters.DoJIT, 'true') }}:
400+
ExtraOptions: ''
401+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
402+
ExtraOptions: '--experimental-jit-off'
403+
${{ else }}:
404+
ExtraOptions: '--experimental-jit'
317405
${{ if eq(parameters.ToBeSigned, 'true') }}:
318406
Artifact: unsigned_arm64
319407
${{ else }}:
@@ -322,7 +410,12 @@ jobs:
322410
arm64_t:
323411
Name: arm64_t
324412
PythonExePattern: python3*t.exe
325-
ExtraOptions: --disable-gil
413+
${{ if or(ne(parameters.DoJIT, 'true'), ne(parameters.DoJITFreethreaded, 'true')) }}:
414+
ExtraOptions: '--disable-gil'
415+
${{ elseif ne(parameters.DoJITEnabled, 'true') }}:
416+
ExtraOptions: '--disable-gil --experimental-jit-off'
417+
${{ else }}:
418+
ExtraOptions: '--disable-gil --experimental-jit'
326419
${{ if eq(parameters.ToBeSigned, 'true') }}:
327420
Artifact: unsigned_arm64_t
328421
${{ else }}:

0 commit comments

Comments
 (0)