On 15 March 2017 at 00:17, Nick Coghlan <ncoghlan@gmail.com> wrote:
On 13 March 2017 at 23:31, Random832 <random832@fastmail.com> wrote:
On Mon, Mar 13, 2017, at 04:37, INADA Naoki wrote:
> But locale coercing works nice on platforms like android.
> So how about simplified version of PEP 538?  Just adding configure
> option for locale coercing
> which is disabled by default.  No envvar options and no warnings.

A configure option just kicks the decision to packagers - either no-one
uses it (and thus it solves nothing) or people do use it (and any
problems it causes won't be mitigated at all)

Distro packagers have narrower user bases and a better known set of compatibility constraints than upstream, so kicking platform integration related config decisions downstream to us(/them) is actually a pretty reasonable thing for upstream to do :)

For example, while I've been iterating on the reference implementation for 3.7, Charalampos Stratakis has been iterating on the backport patch for Fedora 26, and he's found that we really need the PEP's "disable the C locale warning" config option to turn off the CLI's coercion warning in addition to the warning in the shared library, as leaving it visible breaks build processes for other packages that check that there aren't any messages being emitted to stderr (or otherwise care about the exact output from build tools that rely on the system Python 3 runtime).

The build processes that broke due to the warning were judged to be a bug in autoconf rather than a problem with the warning itself: http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=commit;h=883a2abd5af5c96be894d5ef7ee6e9a2b8e64307

So we're going to leave this as it is in the PEP for now (i.e. the locale coercion warning always happens unless you preconfigure a locale other than C), but keep an eye on it to see if it causes any other problems.


Nick Coghlan   |   ncoghlan@gmail.com   |   Brisbane, Australia