[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