diff --git a/Misc/NEWS b/Misc/NEWS index c082fce5dae..43eff32c262 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -32,14 +32,14 @@ Core this situation, and -Werror::OverflowWarning to revert to the old OverflowError exception. -- A new command line option, -D, is added to control run-time +- A new command line option, -Q, is added to control run-time warnings for the use of classic division. (See PEP 238.) Possible - values are -Dold, -Dwarn, and -Dnew. The default is -Dold, meaning + values are -Qold, -Qwarn, and -Qnew. The default is -Qold, meaning the / operator has its classic meaning and no warnings are issued. - Using -Dwarn issues a run-time warning about all uses of classic - division for int, long, float and complex arguments. Using -Dnew is + Using -Qwarn issues a run-time warning about all uses of classic + division for int, long, float and complex arguments. Using -Qnew is questionable; it turns on new division by default, but only in the - __main__ module. You can usefully combine -Dwarn and -Dnew: this + __main__ module. You can usefully combine -Qwarn and -Qnew: this gives the __main__ module new division, and warns about classic division everywhere else. diff --git a/Modules/main.c b/Modules/main.c index 3f7b08126f8..f38a5c3d84a 100644 --- a/Modules/main.c +++ b/Modules/main.c @@ -29,7 +29,7 @@ static char **orig_argv; static int orig_argc; /* command line options */ -#define BASE_OPTS "c:dD:EhiOStuUvVW:xX" +#define BASE_OPTS "c:dEhiOQ:StuUvVW:xX" #ifndef RISCOS #define PROGRAM_OPTS BASE_OPTS @@ -50,15 +50,15 @@ static char *usage_1 = "\ Options and arguments (and corresponding environment variables):\n\ -c cmd : program passed in as string (terminates option list)\n\ -d : debug output from parser (also PYTHONDEBUG=x)\n\ --D arg : division options: -Dold (default), -Dwarn, -Dnew\n\ -E : ignore environment variables (such as PYTHONPATH)\n\ -h : print this help message and exit\n\ -"; -static char *usage_2 = "\ -i : inspect interactively after running script, (also PYTHONINSPECT=x)\n\ and force prompts, even if stdin does not appear to be a terminal\n\ +"; +static char *usage_2 = "\ -O : optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)\n\ -OO : remove doc-strings in addition to the -O optimizations\n\ +-Q arg : division options: -Qold (default), -Qwarn, -Qnew\n\ -S : don't imply 'import site' on initialization\n\ -t : issue warnings about inconsistent tab usage (-tt: issue errors)\n\ -u : unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x)\n\ @@ -155,7 +155,7 @@ Py_Main(int argc, char **argv) Py_DebugFlag++; break; - case 'D': + case 'Q': if (strcmp(_PyOS_optarg, "old") == 0) { Py_DivisionWarningFlag = 0; break; @@ -170,8 +170,8 @@ Py_Main(int argc, char **argv) break; } fprintf(stderr, - "-D option should be " - "`-Dold', `-Dwarn' or `-Dnew' only\n"); + "-Q option should be " + "`-Qold', `-Qwarn' or `-Qnew' only\n"); usage(2, argv[0]); /* NOTREACHED */ diff --git a/Tools/scripts/fixdiv.py b/Tools/scripts/fixdiv.py index 616622b819f..175d77bd686 100755 --- a/Tools/scripts/fixdiv.py +++ b/Tools/scripts/fixdiv.py @@ -2,7 +2,7 @@ """fixdiv - tool to fix division operators. -To use this tool, first run `python -Dwarn yourscript.py 2>warnings'. +To use this tool, first run `python -Qwarn yourscript.py 2>warnings'. This runs the script `yourscript.py' while writing warning messages about all uses of the classic division operator to the file `warnings'. The warnings look like this: