Skip to content

Commit aae6959

Browse files
committed
DNM: enable the experimental JIT in 3.13+
1 parent 2074a85 commit aae6959

File tree

9 files changed

+105
-0
lines changed

9 files changed

+105
-0
lines changed

3.13/bookworm/Dockerfile

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.13/slim-bookworm/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.13/slim-trixie/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.13/trixie/Dockerfile

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.14/bookworm/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.14/slim-bookworm/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.14/slim-trixie/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

3.14/trixie/Dockerfile

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Dockerfile-linux.template

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@
88
def rcVersion:
99
env.version | rtrimstr("-rc")
1010
;
11+
def llvmVersion:
12+
if is_alpine then null else
13+
{
14+
"3.13": "18", # https://github.com/python/cpython/blob/3.13/Tools/jit/README.md
15+
"3.14": "19", # https://github.com/python/cpython/blob/3.14/Tools/jit/README.md
16+
}[rcVersion]
17+
end
18+
;
1119
def clean_apt:
1220
# TODO once bookworm is EOL, remove this and just hard-code "apt-get dist-clean" instead
1321
if env.variant | contains("bookworm") then
@@ -155,6 +163,12 @@ RUN set -eux; \
155163
if IN(env.version; "3.9", "3.10", "3.11", "3.12", "3.13") then empty else
156164
"libzstd-dev"
157165
end,
166+
if llvmVersion then
167+
"clang-\(llvmVersion)",
168+
"llvm-\(llvmVersion)",
169+
"python3", # "Python 3.11 or newer is required to build the JIT."
170+
empty
171+
else empty end,
158172
empty
159173
end
160174
] -}}
@@ -215,6 +229,11 @@ RUN set -eux; \
215229
$(test "${gnuArch%%-*}" != 'riscv64' && echo '--with-lto') \
216230
{{ ) end -}}
217231
--with-ensurepip \
232+
{{ if llvmVersion then ( -}}
233+
# https://github.com/docker-library/python/issues/1009
234+
# https://docs.python.org/3.14/whatsnew/3.14.html#binary-releases-for-the-experimental-just-in-time-compiler
235+
--enable-experimental-jit=yes-off \
236+
{{ ) else "" end -}}
218237
; \
219238
nproc="$(nproc)"; \
220239
{{ if is_alpine then ( -}}

0 commit comments

Comments
 (0)