[pypy-svn] r37846 - pypy/dist/pypy/doc/config

cfbolz at codespeak.net cfbolz at codespeak.net
Sat Feb 3 01:56:53 CET 2007


Author: cfbolz
Date: Sat Feb  3 01:56:51 2007
New Revision: 37846

Modified:
   pypy/dist/pypy/doc/config/objspace.name.txt
   pypy/dist/pypy/doc/config/objspace.opcodes.CALL_LIKELY_BUILTIN.txt
   pypy/dist/pypy/doc/config/objspace.std.allopts.txt
   pypy/dist/pypy/doc/config/objspace.std.withmultidict.txt
   pypy/dist/pypy/doc/config/objspace.std.withrangelist.txt
   pypy/dist/pypy/doc/config/objspace.std.withshadowtracking.txt
   pypy/dist/pypy/doc/config/objspace.std.withsharingdict.txt
   pypy/dist/pypy/doc/config/objspace.std.withsmallint.txt
   pypy/dist/pypy/doc/config/objspace.std.withtproxy.txt
   pypy/dist/pypy/doc/config/objspace.usepycfiles.txt
Log:
document some more of the options


Modified: pypy/dist/pypy/doc/config/objspace.name.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.name.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.name.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,11 @@
+Which `Object Space`_ to use. The `Standard Object Space`_ gives the normal
+Python semantics, the others give additional features (except the Flow Object
+Space which is not intended for normal useage):
+
+  * The `Thunk Object Space`_ adds lazy evaluation to Python
+
+XXX add the others
+
+.. _`Object Space`: ../objspace.html
+.. _`Standard Object Space`: ../objspace.html#standard-object-space
+.. _`Thunk Object Space`: ../objspace.html#thunk-object-space

Modified: pypy/dist/pypy/doc/config/objspace.opcodes.CALL_LIKELY_BUILTIN.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.opcodes.CALL_LIKELY_BUILTIN.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.opcodes.CALL_LIKELY_BUILTIN.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,8 @@
+Introduce a new opcode called ``CALL_LIKELY_BUILTIN``. It is used when something
+is called, that looks like a builtin function (but could in reality be shadowed
+by something in the module globals). For all module globals dictionaries it is
+then tracked, which builtin name is shadowed in this module. If the
+``CALL_LIKELY_BUILTIN`` opcode is executed, it is checked whether the builtin is
+shadowed. If not, the corresponding builtin is called. Otherwise the object that
+is shadowing it is called instead. If no shadowing is happening, this safes two
+dictionary lookups on calls to builtins.

Modified: pypy/dist/pypy/doc/config/objspace.std.allopts.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.allopts.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.allopts.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,2 @@
+This tries to enable a set of options that makes the resulting pypy-c as fast as
+possible.

Modified: pypy/dist/pypy/doc/config/objspace.std.withmultidict.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withmultidict.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withmultidict.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,13 @@
+This enables "multidicts". They are a different implementation of the Python
+``dict`` type, indistinguishable for the normal user (when using multidicts, the
+normal implementation is not used at all). When the multidict implementation is
+used, a dictionary can change its internal representation over its lifetime. It
+starts with an "empty" representation (that can represent only empty dicts). If
+a few keys are added, it changes its representation to a "small" one (that is
+optimized for small dicts). As long as only string keys are added, a
+representation optimized for string keys is used. Since this case is extremely
+common in Python, this makes multidicts a good deal faster than the regular
+dictionary implementation.
+
+The flexibility of multidicts is used by a couple of other, even more advanced
+object implementations.

Modified: pypy/dist/pypy/doc/config/objspace.std.withrangelist.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withrangelist.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withrangelist.txt	Sat Feb  3 01:56:51 2007
@@ -1,4 +1,4 @@
-Enable "range list" objects. They are a different implementation of the Python
+Enable "range list" objects. They are an additional implementation of the Python
 ``list`` type, indistinguishable for the normal user. Whenever the ``range``
 builtin is called, an range list is returned. As long as this list is not
 mutated (and for example only iterated over), it uses only enough memory to

Modified: pypy/dist/pypy/doc/config/objspace.std.withshadowtracking.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withshadowtracking.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withshadowtracking.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,11 @@
+Enable "shadow tracking". This means a special dict representation is used
+together with `multidicts`_. This dict representation is used only for instance
+dictionaries. The instance dictionary tracks whether an instance attribute
+shadows an attribute of it's class. This makes method calls slightly faster in
+the following way: When calling a method the first thing that is checked is the
+class dictionary to find descriptors. Usually, when a method is found, the
+instance dictionary is then checked for instance attributes shadowing the class
+attribute. If we know that there is no shadowing (since our instance dict tells
+us that) we can save this lookup on the instance dictionary.
+
+.. _`multidicts`: objspace.std.withmultidict.html

Modified: pypy/dist/pypy/doc/config/objspace.std.withsharingdict.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withsharingdict.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withsharingdict.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,13 @@
+Enable "sharing dictionaries". They are a special dict representation used
+together with `multidicts`_. This dict representation is used only for instance
+dictionaries and tries to make instance dictionaries use less memory (in fact,
+in the ideal case the memory behaviour should be mostly like that of using
+__slots__).
+
+The idea is the following: Most instances of the same class have very similar
+attributes. Therefore all the instance dictionaries of these instances all store
+the same keys. To save memory, these common keys could be stored in a common
+place. This is exactly what "sharing dictionaries" are doing: only the values
+themselves are stored on the instance, the rest in a shared structure.
+
+.. _`multidicts`: objspace.std.withmultidict.html

Modified: pypy/dist/pypy/doc/config/objspace.std.withsmallint.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withsmallint.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withsmallint.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,6 @@
+Use "tagged pointers" to represent small enough integer values: Integers that
+fit into 31 bits (respective 63 bits on 64 bit machines) are not represented by
+boxing them in an instance of ``W_IntObject``. Instead they are represented as a
+pointer having the lowest bit set and the rest of the bits used to store the
+value of the integer. This gives a small speedup for integer operations as well
+as better memory behaviour.

Modified: pypy/dist/pypy/doc/config/objspace.std.withtproxy.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.std.withtproxy.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.std.withtproxy.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,3 @@
+Enable `transparent proxies`_.
+
+.. _`transparent proxies`: ../proxy.html

Modified: pypy/dist/pypy/doc/config/objspace.usepycfiles.txt
==============================================================================
--- pypy/dist/pypy/doc/config/objspace.usepycfiles.txt	(original)
+++ pypy/dist/pypy/doc/config/objspace.usepycfiles.txt	Sat Feb  3 01:56:51 2007
@@ -0,0 +1,3 @@
+Whether PyPy should import and generate "pyc" files. This is mostly always on,
+except when using other options that lead to PyPy-specific bytecodes that should
+not be cached on disk because they might confuse CPython.


More information about the pypy-svn mailing list