CPython

From Encoresoup - The Ultimate Guide to Free/Open Source Software

Jump to: navigation, search
This article contains content from the Wikipedia article:
CPython
history contributors
CPython
Developer: Python Software Foundation
Stable release

2.6  (01 October 2008)

Platform: Cross-platform
Genre: Python Programming Language Interpreter
License: Python Software Foundation License
Website: [[Website::Python.org]]

CPython is the default, most-widely used implementation of the Python programming language. It is written in C. In addition to CPython, there are two other production-quality Python implementations: Jython, written in Java, and IronPython, which is written for the Common Language Runtime, as well as several experimental implementations.[1] The backronym Classic Python has been suggested as another meaning for the 'C'.

CPython is a bytecode interpreter. It has a foreign function interface with several languages including C, in which one must explicitly write bindings in a language other than Python.

Contents

[edit] Supported platforms

Unix-like

  • AIX operating system
  • BSD
  • Darwin
  • FreeBSD
  • HP-UX
  • IRIX 5 and later
  • Plan 9 from Bell Labs
  • Mac OS X
  • NetBSD
  • Linux
  • OpenBSD
  • Solaris
  • Tru64
  • Other Unixes

Desktop OSes

  • AROS
  • AtheOS
  • BeOS
  • Windows
  • Windows NT
  • OS/2
  • RISC OS

Special and embedded

  • GP2X
  • iPodLinux
  • Nintendo DS
  • Nintendo Gamecube
  • Nokia 6682 and other Series60 phones
  • Nokia 770 Internet Tablet
  • Nokia N800
  • Nokia N810
  • Palm OS
  • PlayStation 2
  • PlayStation 3 (Linux)
  • Psion
  • QNX
  • Sharp Zaurus
  • Xbox/XBMC
  • VxWorks

Mainframe and other

  • OS/390
  • VMS
  • z/OS

[edit] Previously supported platforms

PEP 11 lists platforms which are not supported in CPython by Python Software Foundation. These platforms can still be supported by external ports. See below.

  • DOS (unsupported since 2.0)
  • IRIX 4 (unsupported since 2.3)
  • Mac OS 9 (unsupported since 2.4)
  • MINIX (unsupported since 2.3)

[edit] External ports

These are ports not integrated to Python Software Foundation's official version of CPython, with links to its main development site. Ports often include additional modules for platform-specific functionalities, like graphics and sound API for PSP and SMS and camera API for S60.

[edit] Concurrency Issues

The main issue of using CPython on a multiprocessor computer is the presence of a Global Interpreter Lock on each CPython interpreter process, which effectively disables concurrent Python threads within one process[1]. To be truly concurrent in multiprocessor environment, separate CPython interpreter processes have to be run, which makes establishing communication between them a difficult task. There is constant discussion whether to remove the GIL from CPython[2].

[edit] Notes

  1. ^  Martelli, Alex (2006). Python in a Nutshell, 2nd edition, O'Reilly, 5–7. ISBN 0-596-10046-9. 

[edit] References

  1. Python/C API Reference Manual: Thread State and the Global Interpreter Lock
  2. Python Library and Extension FAQ: Can't we get rid of the Global Interpreter Lock?
Personal tools

The Cathedral And The Bazaar [Amazon] Pico USB Flash Drive (8Gb) [ThinkGeek]Linksys NSLU2 Storage Link for USB 2.0 Disk Drives [Amazon]