Issue 5362: Add configure option to disable Py3k warnings (original) (raw)

Created on 2009-02-24 22:54 by collinwinter, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
no_py3k_warning.patch collinwinter,2009-02-26 01:19 Against trunk r69987
Messages (9)
msg82683 - (view) Author: Collin Winter (collinwinter) * (Python committer) Date: 2009-02-24 22:54
The attached patch adds a --with-py3k-warnings option to configure. Passing --without-py3k-warnings disables all Py3k compatibility warnings (the default is to keep the warnings). For production deployments where performance is more important than warnings no-one will see, this can provide a useful performance improvement: 2to3 (translate 2to3's source tree five times): Min: 22.406 -> 22.114: 1.32% faster Avg: 22.439 -> 22.158: 1.27% faster Django (render a 150x150 table 100 times): Min: 0.595 -> 0.586: 1.58% faster Avg: 0.598 -> 0.588: 1.76% faster Spitfire (render a 1000x1000 table 100 times): Min: 0.752 -> 0.743: 1.29% faster Avg: 0.754 -> 0.745: 1.25% faster Unpickle (unpickling a list of 8000 dicts 100 times): Min: 0.305 -> 0.301: 1.41% faster Avg: 0.307 -> 0.302: 1.49% faster Build env: gcc 4.3.1 x86_64 on Linux 2.6.18 (Core2 Duo)
msg82685 - (view) Author: Martin v. Löwis (loewis) * (Python committer) Date: 2009-02-24 23:29
I would like to understand the problem better first. I find it hard to believe that mere access to a global (even if frequent) costs so much. I think we should strive to make the warnings check faster if it indeed produces significant runtime costs, rather than offering to remove it.
msg82693 - (view) Author: Jeffrey Yasskin (jyasskin) * (Python committer) Date: 2009-02-25 02:12
s/Leaving/Turning/ in configure.in. It looks like the convention for other --with flags that default to enabled is to document them as --with(out)-xxx. (except tsc...) I guess it's probably even better just to say what the default is in the documentation. "Trade away speed for Py3k compat warnings" is a bit harsh for a 1.5% penalty. How about "Define to get Py3k compatibility warnings at the cost of a little speed"?
msg82737 - (view) Author: Collin Winter (collinwinter) * (Python committer) Date: 2009-02-26 01:16
Jeffrey: updated the patch to address your concerns. Martin: I'm not sure I completely understand it either, though it seems similar to . In the course of developing this patch, I tried also #ifdef'ing out all usages of the Py_Py3kWarningFlag global. This actually made things slower by around 5% across all the benchmarks I tested. Could be pipeline stalls or a code size issue, I really don't know. I'm not 100% convinced that something like this should go into CPython, as a different compiler/hardware combination could well render it moot. I mostly wanted a record of it, in case those few Python deployments with homogeneous compilers/hardware across their machines that might care about 1% better performance are interested.
msg82738 - (view) Author: Collin Winter (collinwinter) * (Python committer) Date: 2009-02-26 01:19
Bah, forgot to run autoreconf. Fixed.
msg98465 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2010-01-28 15:39
Given the very small benefits, I don't think there's any point in making this a configuration variable. A hardcoded flag would be sufficient, and expert users would be able to recompile their Python (as with the FAST_LOOPS flag).
msg98466 - (view) Author: Marc-Andre Lemburg (lemburg) * (Python committer) Date: 2010-01-28 17:12
I'm with Antoine on this one. Also, instead of removing the flag completely which will cause problems with extensions relying on it, I'd suggest to just disable the PyErr_WarnPy3k(msg, stacklevel) macro and turn it into a no-op if a compile time variable DISABLE_PY3K_WARNINGS (or similar) is defined (which should be undefined per default).
msg111829 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2010-07-28 16:13
Both and agree that this should not be a configuration variable. I think a new patch is needed which follows the suggested solutions from the two messages given.
msg115337 - (view) Author: Daniel Stutzbach (stutzbach) (Python committer) Date: 2010-09-01 21:49
Since this issue doesn't apply in Python 3 and (as I understand it) the 2.7 branch is only open to bug fixes, can we close this performance issue?
History
Date User Action Args
2022-04-11 14:56:46 admin set github: 49612
2010-09-01 21:52:17 brett.cannon set status: open -> closedkeywords:patch, patch, needs reviewresolution: out of date
2010-09-01 21:49:35 stutzbach set keywords:patch, patch, needs reviewnosy: + stutzbachmessages: +
2010-07-28 16:13:46 BreamoreBoy set keywords:patch, patch, needs reviewnosy: + BreamoreBoymessages: +
2010-01-28 17:13:01 lemburg set keywords:patch, patch, needs reviewnosy: + lemburgmessages: +
2010-01-28 15:39:04 pitrou set keywords:patch, patch, needs reviewmessages: +
2010-01-27 22:15:01 ezio.melotti set priority: normalnosy: + ezio.melottikeywords:patch, patch, needs reviewstage: patch review
2009-02-26 01:19:41 collinwinter set files: - no_py3k_warning.patch
2009-02-26 01:19:34 collinwinter set keywords:patch, patch, needs reviewfiles: + no_py3k_warning.patchmessages: +
2009-02-26 01:17:23 collinwinter set files: - no_py3k_warning.patch
2009-02-26 01:16:52 collinwinter set keywords:patch, patch, needs reviewfiles: + no_py3k_warning.patchmessages: +
2009-02-25 02:12:44 jyasskin set keywords:patch, patch, needs reviewmessages: +
2009-02-24 23:29:55 loewis set keywords:patch, patch, needs reviewnosy: + loewismessages: +
2009-02-24 22:54:42 collinwinter create