[stdlib-sig] Proposal: new "interpreter" module
Benjamin Peterson
musiccomposition at gmail.com
Sat Apr 5 18:13:26 CEST 2008
On Sat, Apr 5, 2008 at 10:37 AM, Brett Cannon <brett at python.org> wrote:
> On Sat, Apr 5, 2008 at 4:58 PM, Benjamin Peterson
> <musiccomposition at 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
- subversion, 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
- 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
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]_!
Other implementations have clearly struggled with what to do about the
contents
of sys they can't implement but must to retain compatibility. For example,
Jython's sys module has dud set/getrecursionlimit functions. Moving these
items
items off to another module would send a clear message 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
functions mentioned in the second list above will be moved to it.
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
===========
Naming
------
The author proposes the name "interpreter" for the new module. "pyvm" has
also
been suggested [#pyvm-name]_.
References
==========
.. [#bug-1522]
http://bugs.python.org/issue1522
.. [#types-removal]
http://mail.python.org/pipermail/stdlib-sig/2008-April/000172.html
.. [#pyvm-name]
http://mail.python.org/pipermail/python-3000/2007-November/011351.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:
>
>
> -Brett
>
--
Cheers,
Benjamin Peterson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/stdlib-sig/attachments/20080405/bd73e8a4/attachment.htm
More information about the stdlib-sig
mailing list