cPython, IronPython, Jython, and PyPy (Oh my!)

Ian Kelly ian.g.kelly at gmail.com
Wed May 16 18:01:41 EDT 2012


On Wed, May 16, 2012 at 3:33 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
> Just hit a snag:
>
> In cPython the deterministic garbage collection allows me a particular
> optimization when retrieving records from a dbf file -- namely, by using
> weakrefs I can tell if the record is still in memory and active, and if so
> not hit the disk to get the data;  with PyPy (and probably the others) this
> doesn't work because the record may still be around even when it is no
> longer active because it hasn't been garbage collected yet.
>
> For PyPy I can use `'PyPy' in sys.version` to set a constant
> (REFRESH_FROM_DISK in this case) to disable the cPython optimization; does
> anyone know what strings to look for for the other implementations?

Python 2.7.1 (r271:86832, Nov 27 2010, 18:30:46) [MSC v.1500 32 bit
(Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.subversion
('CPython', 'tags/r271', '86832')

Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06)
[Java HotSpot(TM) Client VM (Sun Microsystems Inc.)] on java1.6.0_31
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.subversion
('Jython', 'tags/Release_2_5_2', '7206')

I don't know what IronPython or PyPy return, but it should be
something other than 'CPython'.



More information about the Python-list mailing list