• Guido van Rossum's avatar
    Add warning mode for classic division, almost exactly as specified in · 393661d1
    Guido van Rossum yazdı
    PEP 238.  Changes:
    
    - add a new flag variable Py_DivisionWarningFlag, declared in
      pydebug.h, defined in object.c, set in main.c, and used in
      {int,long,float,complex}object.c.  When this flag is set, the
      classic division operator issues a DeprecationWarning message.
    
    - add a new API PyRun_SimpleStringFlags() to match
      PyRun_SimpleString().  The main() function calls this so that
      commands run with -c can also benefit from -Dnew.
    
    - While I was at it, I changed the usage message in main() somewhat:
      alphabetized the options, split it in *four* parts to fit in under
      512 bytes (not that I still believe this is necessary -- doc strings
      elsewhere are much longer), and perhaps most visibly, don't display
      the full list of options on each command line error.  Instead, the
      full list is only displayed when -h is used, and otherwise a brief
      reminder of -h is displayed.  When -h is used, write to stdout so
      that you can do `python -h | more'.
    
    Notes:
    
    - I don't want to use the -W option to control whether the classic
      division warning is issued or not, because the machinery to decide
      whether to display the warning or not is very expensive (it involves
      calling into the warnings.py module).  You can use -Werror to turn
      the warnings into exceptions though.
    
    - The -Dnew option doesn't select future division for all of the
      program -- only for the __main__ module.  I don't know if I'll ever
      change this -- it would require changes to the .pyc file magic
      number to do it right, and a more global notion of compiler flags.
    
    - You can usefully combine -Dwarn and -Dnew: this gives the __main__
      module new division, and warns about classic division everywhere
      else.
    393661d1
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
PLAN.txt Loading commit data...
README Loading commit data...
acconfig.h Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...