[Python-checkins] r62782 - in peps/trunk: pep-0000.txt pep-3139.txt
benjamin.peterson
python-checkins at python.org
Wed May 7 00:01:54 CEST 2008
Author: benjamin.peterson
Date: Wed May 7 00:01:54 2008
New Revision: 62782
Log:
Add my old rejected PEP: Cleaning out sys and the interpreter module
Added:
peps/trunk/pep-3139.txt
Modified:
peps/trunk/pep-0000.txt
Modified: peps/trunk/pep-0000.txt
==============================================================================
--- peps/trunk/pep-0000.txt (original)
+++ peps/trunk/pep-0000.txt Wed May 7 00:01:54 2008
@@ -517,6 +517,7 @@
SR 3136 Labeled break and continue Chisholm
SA 3137 Immutable Bytes and Mutable Buffer GvR
S 3138 String representation in Python 3000 Ishimoto
+ SR 3139 Cleaning out sys and the "interpreter" module Peterson
SA 3141 A Type Hierarchy for Numbers Yasskin
@@ -612,6 +613,7 @@
Pedroni, Samuele pedronis at python.org
Pelletier, Michel michel at users.sourceforge.net
Peters, Tim tim at zope.com
+ Peterson, Benjamin musiccomposition at gmail.com
Petrone, Jason jp at demonseed.net
Prescod, Paul paul at prescod.net
Reedy, Terry tjreedy at udel.edu
Added: peps/trunk/pep-3139.txt
==============================================================================
--- (empty file)
+++ peps/trunk/pep-3139.txt Wed May 7 00:01:54 2008
@@ -0,0 +1,194 @@
+PEP: 3139
+Title: Cleaning out sys and the "interpreter" module
+Version: $Revision$
+Last-Modified: $Date$
+Author: Benjamin Peterson
+Status: Rejected
+Type: Standards Track
+Content-Type: text/x-rst
+Created: 4-April-2008
+Python-Version: 3.0
+
+
+Rejection Notice
+================
+
+Guido's -0.5 put an end to this PEP. See
+http://mail.python.org/pipermail/python-3000/2008-April/012977.html.
+
+
+Abstract
+========
+
+This PEP proposes a new low-level module for CPython-specific interpreter
+functions in order to clean out the sys module and separate general Python
+functionality from implementation details.
+
+
+Rationale
+=========
+
+The sys module currently contains functions and data that can be put into two
+major groups:
+
+1. Data and functions that are available in all Python implementations and deal
+ with the general running of a Python virtual machine.
+
+ - argv
+ - byteorder
+ - path, path_hooks, meta_path, path_importer_cache, and modules
+ - copyright, hexversion, version, and version_info
+ - displayhook, __displayhook__
+ - excepthook, __excepthook__, exc_info, and exc_clear
+ - exec_prefix and prefix
+ - executable
+ - exit
+ - flags, py3kwarning, dont_write_bytecode, and warn_options
+ - getfilesystemencoding
+ - get/setprofile
+ - get/settrace, call_tracing
+ - getwindowsversion
+ - maxint and maxunicode
+ - platform
+ - ps1 and ps2
+ - stdin, stderr, stdout, __stdin__, __stderr__, __stdout__
+ - tracebacklimit
+
+
+2. Data and functions that affect the CPython interpreter.
+
+ - get/setrecursionlimit
+ - get/setcheckinterval
+ - _getframe and _current_frame
+ - getrefcount
+ - get/setdlopenflags
+ - settscdumps
+ - api_version
+ - winver
+ - dllhandle
+ - float_info
+ - _compact_freelists
+ - _clear_type_cache
+ - subversion
+ - builtin_module_names
+ - callstats
+ - intern
+
+The second collections of items has been steadily increasing over the years
+causing clutter in sys. Guido has even said he doesn't recognize some of things
+in it [#bug-1522]_!
+
+Moving these items items off to another module would send a clear message to
+other Python implementations about what functions need and need not be
+implemented.
+
+It has also been proposed that the contents of types module be distributed
+across the standard library [#types-removal]_; the interpreter module would
+provide an excellent resting place for internal types like frames and code
+objects.
+
+Specification
+=============
+
+A new builtin module named "interpreter" (see `Naming`_) will be added.
+
+The second list of items above will be split into the stdlib as follows:
+
+The interpreter module
+ - get/setrecursionlimit
+ - get/setcheckinterval
+ - _getframe and _current_frame
+ - get/setdlopenflags
+ - settscdumps
+ - api_version
+ - winver
+ - dllhandle
+ - float_info
+ - _clear_type_cache
+ - subversion
+ - builtin_module_names
+ - callstats
+ - intern
+
+The gc module:
+ - getrefcount
+ - _compact_freelists
+
+
+Transition Plan
+===============
+
+Once implemented in 3.x, the interpreter module will be back-ported to 2.6.
+Py3k warnings will be added the the sys functions it replaces.
+
+
+Open Issues
+===========
+
+
+What should move?
+-----------------
+
+
+dont_write_bytecode
+^^^^^^^^^^^^^^^^^^^^
+
+Some believe that the writing of bytecode is an implementation detail and should
+be moved [#bytecode-issue]_. The counterargument is that all current, complete
+Python implementations do write some sort of bytecode, so it is valuable to be
+able to disable it. Also, if it is moved, some wish to put it in the imp
+module.
+
+
+Move to some to imp?
+--------------------
+
+It was noted that dont_write_bytecode or maybe builtin_module_names might fit
+nicely in the imp module.
+
+
+Naming
+------
+
+The author proposes the name "interpreter" for the new module. "pyvm" has also
+been suggested [#pyvm-name]_. The name "cpython" was well liked
+[#cpython-name]_.
+
+
+References
+==========
+
+.. [#bug-1522]
+
+ http://bugs.python.org/issue1522
+
+.. [#types-removal]
+
+ http://mail.python.org/pipermail/stdlib-sig/2008-April/000172.html
+
+.. [#bytecode-issue]
+
+ http://mail.python.org/pipermail/stdlib-sig/2008-April/000217.html
+
+.. [#pyvm-name]
+
+ http://mail.python.org/pipermail/python-3000/2007-November/011351.html
+
+.. [#cpython-name]
+
+ http://mail.python.org/pipermail/stdlib-sig/2008-April/000223.html
+
+Copyright
+=========
+
+ This document has been placed in the public domain.
+
+
+
+Local Variables:
+mode: indented-text
+indent-tabs-mode: nil
+sentence-end-double-space: t
+fill-column: 70
+coding: utf-8
+End:
More information about the Python-checkins
mailing list