Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32.3k
gh-115119: removed implicit fallback to the bundled libmpdec#134078
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Changes from2 commits
14266c8
39d1e6b
b328702
94ce315
fed39e1
4c98b8d
6cd1730
9d29df1
b733718
d53bdf3
c3a1889
45544d9
8413e6f
9690208
f0e6757
1eca085
73f0729
cece14c
File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading.Please reload this page.
Jump to
Uh oh!
There was an error while loading.Please reload this page.
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -90,7 +90,7 @@ jobs: | ||
name: 'Check if generated files are up to date' | ||
# Don't use ubuntu-latest but a specific version to make the job | ||
# reproducible: to get the same tools versions (autoconf, aclocal, ...) | ||
runs-on: ubuntu-22.04 | ||
skirpichev marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
timeout-minutes: 60 | ||
needs: build-context | ||
if: needs.build-context.outputs.run-tests == 'true' | ||
@@ -110,7 +110,9 @@ jobs: | ||
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python | ||
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }} | ||
- name: Install dependencies | ||
run: | | ||
sudo ./.github/workflows/posix-deps-apt.sh | ||
sudo apt-get -yq install libmpdec-dev | ||
- name: Add ccache to PATH | ||
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV" | ||
- name: Configure ccache action | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -163,6 +163,11 @@ that may require changes to your code. | ||
Build changes | ||
============= | ||
* Removed implicit fallback to the buildled copy of the ``libmpdec`` library. | ||
skirpichev marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
Now this should be explicitly enabled with :option:`--with-system-libmpdec` | ||
set to ``no`` or with :option:`!--without-system-libmpdec`. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. Does the devguide need updating? For example the macOS build instructions say to use https://devguide.python.org/getting-started/setup-building/#install-dependencies There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. I think we can just drop this option. It's specified in 3.13+ instructions (where it's default to "yes"). I'll prepare a patch. | ||
(Contributed by Sergey B Kirpichev in :gh:`115119`.) | ||
C API changes | ||
============= | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
Removed implicit fallback to the buildled copy of the ``libmpdec`` library. | ||
skirpichev marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
Now this should be explicitly enabled with :option:`--with-system-libmpdec` | ||
set to ``no`` or with :option:`!--without-system-libmpdec`. Patch by Sergey | ||
skirpichev marked this conversation as resolved. Show resolvedHide resolvedUh oh!There was an error while loading.Please reload this page. | ||
B Kirpichev. |
Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.
Uh oh!
There was an error while loading.Please reload this page.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -4092,31 +4092,30 @@ fi | ||
# Check for use of the system libmpdec library | ||
AC_MSG_CHECKING([for --with-system-libmpdec]) | ||
AC_DEFUN([USE_BUNDLED_LIBMPDEC], | ||
[LIBMPDEC_CFLAGS="-I\$(srcdir)/Modules/_decimal/libmpdec" | ||
LIBMPDEC_LIBS="-lm \$(LIBMPDEC_A)" | ||
LIBMPDEC_INTERNAL="\$(LIBMPDEC_HEADERS) \$(LIBMPDEC_A)" | ||
have_mpdec=yes | ||
with_system_libmpdec=no]) | ||
AC_ARG_WITH( | ||
[system_libmpdec], | ||
[AS_HELP_STRING( | ||
[--with-system-libmpdec], | ||
[build _decimal module using an installed mpdecimal library, see Doc/library/decimal.rst (default is yes)] | ||
)], | ||
[AS_IF([test "x$with_system_libmpdec" = xno], | ||
[USE_BUNDLED_LIBMPDEC()])], | ||
[with_system_libmpdec="yes"]) | ||
AC_MSG_RESULT([$with_system_libmpdec]) | ||
AS_VAR_IF( | ||
[with_system_libmpdec], [yes], | ||
[PKG_CHECK_MODULES( | ||
[LIBMPDEC], [libmpdec >= 2.5.0], [], | ||
[LIBMPDEC_CFLAGS=${LIBMPDEC_CFLAGS-""} | ||
LIBMPDEC_LIBS=${LIBMPDEC_LIBS-"-lmpdec -lm"} | ||
LIBMPDEC_INTERNAL=])]) | ||
AS_VAR_IF([with_system_libmpdec], [yes], | ||
[WITH_SAVE_ENV([ | ||
@@ -4132,16 +4131,17 @@ AS_VAR_IF([with_system_libmpdec], [yes], | ||
], [const char *x = mpd_version();])], | ||
[have_mpdec=yes], | ||
[have_mpdec=no]) | ||
])]) | ||
AS_VAR_IF([with_system_libmpdec], [no], | ||
[AC_MSG_WARN([m4_normalize([ | ||
the bundled copy of libmpdecimal is scheduled for removal in Python 3.16; | ||
consider using a system installed mpdecimal library.])])]) | ||
AS_IF([test "$with_system_libmpdec" = "yes" && test "$have_mpdec" = "no"], | ||
[AC_MSG_WARN([m4_normalize([ | ||
no system libmpdecimal found; falling back topure-Python version | ||
forthe decimal module])]) | ||
AS_VAR_SET([py_cv_module_]_decimal, [n/a])]) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more.
Well, that could be an option. Though, more complex wrt implementation: all linux jobs will fail, unless we either provide system libmpdec or change ./configure invocations to use a new option.
I'm not sure it's useful. After all, the pure-Python version is always available as the Did you suggest a new option like There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others.Learn more. A warning is actually ok, but users may not see it and then, they would have a slow version of decimal. OTOH, an error might be too abrupt but at least the tansition would be more explicit and would force people to upgrade if they want an efficient way to do it. I'm +0.25 for AC_MSG_ERROR just to force people to update. We can add an option | ||
# Disable forced inlining in debug builds, see GH-94847 | ||
AS_VAR_IF( | ||
Uh oh!
There was an error while loading.Please reload this page.