Here's an updated version:<br><br> - display_hook, stdout, stdin, and stderr<br> - flags and warn_options<br> - settrace, and setprofile<br> - traceback, excepthook<br> - etc...<br> <br><br>2. Data and functions that affect the CPython interpreter.<br>
<br> - get/setrecursionlimit<br> - get/setcheckinterval<br> - _getframe and _current_frame<br> - getrefcount<br> - get/setdlopenflags<br> - settscdumps<br> - api_version<br> - winver<br> - dllhandle<br>
- float_info<br><br>The second collections of items has been steadily increasing over the years<br>causing clutter in sys. Guido has even said he doesn't recognize some of things<br>in it [#bug-1522]_!<br><br>Other implementations have clearly struggled with what to do about the contents<br>
of sys they can't implement but must to retain compatibility. For example,<br>Jython's sys module has dud set/getrecursionlimit functions. Moving these items<br>items off to another module would send a clear message about what functions need<br>
and need not be implemented.<br><br>It has also been proposed that the contents of types module be distributed<br>across the standard library [#types-removal]_; the interpreter module would<br>provide an excellent resting place for internal types like frames and code<br>
objects.<br><br>Specification<br>=============<br><br>A new builtin module named "interpreter" (see `Naming`_) will be added. The<br>functions mentioned in the second list above will be moved to it.<br><br><br>
Transition Plan<br>===============<br><br>Once implemented in 3.x, the interpreter module will be back-ported to 2.6.<br>Py3k warnings will be added the the sys functions it replaces.<br><br><br>Open Issues<br>===========<br>
<br>Naming<br>------<br><br>The author proposes the name "interpreter" for the new module. "pyvm" has also<br>been suggested [#pyvm-name]_.<br><br><br>References<br>==========<br><br>.. [#bug-1522]<br>
<br> <a href="http://bugs.python.org/issue1522">http://bugs.python.org/issue1522</a><br><br>.. [#types-removal]<br><br> <a href="http://mail.python.org/pipermail/stdlib-sig/2008-April/000172.html">http://mail.python.org/pipermail/stdlib-sig/2008-April/000172.html</a><br>
<br>.. [#pyvm-name]<br><br> <a href="http://mail.python.org/pipermail/python-3000/2007-November/011351.html">http://mail.python.org/pipermail/python-3000/2007-November/011351.html</a><br><br>Copyright<br>=========<br><br>
This document has been placed in the public domain.<br><br><br><br>Local Variables:<br>mode: indented-text<br>indent-tabs-mode: nil<br>sentence-end-double-space: t<br>fill-column: 70<br>coding: utf-8<br>End:<br><br><br>
<div class="gmail_quote">On Sat, Apr 5, 2008 at 9:18 AM, Benjamin Peterson <<a href="mailto:musiccomposition@gmail.com">musiccomposition@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br><br><div class="gmail_quote"><div><div></div><div class="Wj3C7c">On Fri, Apr 4, 2008 at 4:09 PM, Steven Bethard <<a href="mailto:steven.bethard@gmail.com" target="_blank">steven.bethard@gmail.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div>On Fri, Apr 4, 2008 at 10:51 AM, Benjamin Peterson<br>
<<a href="mailto:musiccomposition@gmail.com" target="_blank">musiccomposition@gmail.com</a>> wrote:<br>
> PEP: XXX<br>
> Title: The interpreter module<br>
> Version: $Revision$<br>
> Last-Modified: $Date$<br>
> Author: Benjamin Peterson<br>
> Status: Draft<br>
> Type: Standards Track<br>
> Content-Type: text/x-rst<br>
> Created: 4-April-2008<br>
> Python-Version: 3.0<br>
><br>
><br>
> Abstract<br>
> ========<br>
><br>
> This PEP proposes a new low-level module for CPython-specific interpreter<br>
> functions in order to clean out the sys module and separate general Python<br>
> functionality from implementation details.<br>
><br>
><br>
> Rationale<br>
> =========<br>
><br>
> The sys module currently contains functions and data that can be put into<br>
> two<br>
> major groups:<br>
><br>
> 1. Data and functions that are available in all Python implementations and<br>
> deal<br>
> with the general running of a Python VM.<br>
><br>
> - display_hook, stdout, stdin, and stderr<br>
> - flags and warn_options<br>
> - settrace, and setprofile<br>
> - traceback, excepthook<br>
> - etc...<br>
><br>
><br>
> 2. Data and function that affect the CPython interpreter.<br>
><br>
> - get/setrecursionlimit<br>
> - get/setcheckinterval<br>
> - _getframe and _current_frame<br>
> - getrefcount<br>
> - getdlopenflags<br>
<br>
</div></div>Why getdlopenflags? That seems general to any Python implementation<br>
that opens dlls (though I believe the dl module is going away in<br>
Python 3, so it may not matter).</blockquote></div></div><div>I don't think any other implementations do open dynamic libs. Those flags don't affect the dl module; they define how Python opens C shared libs.<br></div>
<div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
Also, maybe settscdump should be moved as well? Its description says<br>
to look at "Python/ceval.c" <br></blockquote></div><div>Yes. <br></div><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
Otherwise, it looks pretty good to me.<br>
<div><div></div><div><br>
Steve<br>
--<br>
I'm not *in*-sane. Indeed, I am so far *out* of sane that you appear a<br>
tiny blip on the distant coast of sanity.<br>
--- Bucky Katt, Get Fuzzy<br>
</div></div></blockquote></div></div><br><br clear="all"><br>-- <br>Cheers,<br><font color="#888888">Benjamin Peterson
</font></blockquote></div><br><br clear="all"><br>-- <br>Cheers,<br>Benjamin Peterson