Author njs
Recipients ncoghlan, njs
Date 2017-01-03.02:26:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1483410396.43.0.606242074722.issue29137@psf.upfronthosting.co.za>
In-reply-to
Content
> At that point, does it actually make sense to provide the shims? Or should we instead just add the deprecation warnings and say "Don't use the --with-fpectl option, as it doesn't work properly, and breaks ABI compatibility for extension modules built with that Python"?

"Providing the shims" consists of deleting two lines of code, so eh, why not? And in theory there could be "stable ABI" extensions that depend on the shims. But I agree that it doesn't make much difference either way.

> And then add a build time "#pragma message '--with-fpectl' is deprecated as it breaks extension module ABI compatibility" to the WANT_SIGFPE_HANDLER branch in Include/fpectl.h

This would hassle every end user who builds extension modules on Debian/Ubuntu (b/c their default Python build uses --with-fpectl). But end users can't do anything about how Debian/Ubuntu build CPython. And in fact Debian/Ubuntu can't do anything about how Debian/Ubuntu build CPython either until 3.7 comes out and breaks ABI, because switching now would break installed systems...

So long as we keep the PyFPE_* macros as no-ops (which technically we have to to preserve the stable ABI), then there's no need to break compatibility at the C API level. The place we want to break compatibility is by dropping the Python-level fpectl package, so I think that's where we should warn.
History
Date User Action Args
2017-01-03 02:26:36njssetrecipients: + njs, ncoghlan
2017-01-03 02:26:36njssetmessageid: <1483410396.43.0.606242074722.issue29137@psf.upfronthosting.co.za>
2017-01-03 02:26:36njslinkissue29137 messages
2017-01-03 02:26:35njscreate