On Sat, Apr 5, 2008 at 6:13 PM, Benjamin Peterson <musiccomposition@gmail.com> wrote:
On Sat, Apr 5, 2008 at 10:37 AM, Brett Cannon <brett@python.org> wrote:
On Sat, Apr 5, 2008 at 4:58 PM, Benjamin Peterson <musiccomposition@gmail.com> wrote:
Here's an updated version:
- display_hook, stdout, stdin, and stderr - flags and warn_options - settrace, and setprofile - traceback, excepthook - etc...
You still need to get rid of the "etc.". Beyond being explicit, it makes it easier for people reviewing the PEP to see what they think might be better placed in the new module.
PEP: XXX Title: The interpreter module Version: $Revision$ Last-Modified: $Date$ Author: Benjamin Peterson Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 4-April-2008 Python-Version: 3.0
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 VM.
- argv - byteorder - builtin_module_names, path, and modules
builtin_module_names is an implementation detail and thus should be moved.
- subversion, copyright, hexversion, version, and version_info
Ditto for subversion.
- displayhook, __displayhook__ - excepthook, __excepthook__, exc_info, and exc_clear - exec_prefix and prefix - executable - exit - flags, py3kwarning, dont_write_bytecode, and warn_options
dont_write_bytecode might be better off in the new module, but then bytecode is part of the stdlib. I guess it depends on how the other interpreters view bytecode. They could easily just have it always set to False.
- getfilesystemencoding - get/setprofile - get/settrace - getwindowsversion - maxint and maxunicode - platform - ps1 and ps2 - stdin, stderr, stdout, __stdin__, __stderr__, __stdout__ - tracebacklimit
Perhaps we should have sys.interpreter or sys.vm? That way e.g. Jython no longer has to override sys.platform to specify that VM-specific changes are in effect? -Brett