From: Armin R. <ar...@us...> - 2004-12-01 11:58:03
|
Update of /cvsroot/psyco/psyco/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29818 Modified Files: psycoguide.tex Log Message: Updated the docs to mention that support for module top-level code is possible but disabled by default. Index: psycoguide.tex =================================================================== RCS file: /cvsroot/psyco/psyco/doc/psycoguide.tex,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** psycoguide.tex 29 Oct 2004 11:36:39 -0000 1.23 --- psycoguide.tex 1 Dec 2004 11:57:51 -0000 1.24 *************** *** 890,895 **** \item the \code{exec} statement --- in some cases you can use \function{eval} and/or \function{compile} instead, under the restrictions described in section \ref{patchedfunctions} ! \item the code defining a class\footnote{The methods themselves are fine; this only concerns the code that runs in order to define the class (generally only a bunch of \code{def} statements)} (top-level module code can be executed by recent versions of Psyco). \item functions with free or cell vars, which occur with Python's new nested scopes (as enabled by \samp{from __future__ import nested_scopes}); this concerns both the function whose local variable is made visible to a subfunction, and the subfunction using such a local variable --- 890,897 ---- \item the \code{exec} statement --- in some cases you can use \function{eval} and/or \function{compile} instead, under the restrictions described in section \ref{patchedfunctions} ! \item all top-level module code (including e.g.\ test scripts run from the command-line): all code to accelerate should be inside functions. (Support for top-level module code is possible but disabled by default in recent versions of Psyco; contact me for more information.) + \item the code defining a class\footnote{The methods themselves are fine; this only concerns the code that runs in order to define the class (generally only a bunch of \code{def} statements)} + \item functions with free or cell vars, which occur with Python's new nested scopes (as enabled by \samp{from __future__ import nested_scopes}); this concerns both the function whose local variable is made visible to a subfunction, and the subfunction using such a local variable *************** *** 905,911 **** \lineiii{ 85}{\code{EXEC_STMT }}{(2) \code{exec xx}} \lineiii{ 86}{\code{YIELD_VALUE }}{(3) generators} ! \lineiii{ 90}{\code{STORE_NAME }}{(5) class definitions} ! \lineiii{ 91}{\code{DELETE_NAME }}{(5) class definitions} ! \lineiii{101}{\code{LOAD_NAME }}{(5) class definitions} \lineiii{134}{\code{MAKE_CLOSURE }}{(4) nested scopes} \lineiii{135}{\code{LOAD_CLOSURE }}{(4) nested scopes} --- 907,913 ---- \lineiii{ 85}{\code{EXEC_STMT }}{(2) \code{exec xx}} \lineiii{ 86}{\code{YIELD_VALUE }}{(3) generators} ! \lineiii{ 90}{\code{STORE_NAME }}{(5) outside functions} ! \lineiii{ 91}{\code{DELETE_NAME }}{(5) outside functions} ! \lineiii{101}{\code{LOAD_NAME }}{(5) outside functions} \lineiii{134}{\code{MAKE_CLOSURE }}{(4) nested scopes} \lineiii{135}{\code{LOAD_CLOSURE }}{(4) nested scopes} *************** *** 921,925 **** Psyco cannot accelerate class definitions, i.e.\ the execution of the body of the class statement -- i.e.\ the creation of the class object itself. This does not prevent it from accelerating methods in the class. \item[(2)] ! Functions using these constructs cannot be accelerated. \item[(3)] Generators (i.e.\ any function using the \code{yield} keyword) cannot be accelerated currently. If there is enough interest I can consider implementing them. --- 923,927 ---- Psyco cannot accelerate class definitions, i.e.\ the execution of the body of the class statement -- i.e.\ the creation of the class object itself. This does not prevent it from accelerating methods in the class. \item[(2)] ! Functions using this construct cannot be accelerated. \item[(3)] Generators (i.e.\ any function using the \code{yield} keyword) cannot be accelerated currently. If there is enough interest I can consider implementing them. *************** *** 927,931 **** Using nested scopes (i.e.\ variables shared by a function and an inner sub-function) will prevent both the outer and the inner function to be accelerated. This too could be worked around if there is enough interest, at least for accelerating the unrelated parts of the functions -- the accesses to the shared variables themselves might be difficult to optimize. \item[(5)] ! These constructions are allowed when they appear at the module top-level, i.e.\ not in a function or in a class definition. \end{description} --- 929,933 ---- Using nested scopes (i.e.\ variables shared by a function and an inner sub-function) will prevent both the outer and the inner function to be accelerated. This too could be worked around if there is enough interest, at least for accelerating the unrelated parts of the functions -- the accesses to the shared variables themselves might be difficult to optimize. \item[(5)] ! These constructs can appear in class definitions or at the module top-level. It is possible to enable support for module top-level code, but not recommended; instead, try to put all the code you want accelerated in function bodies. \end{description} |