PyPy
  • What is PyPy?
  • Downloading and Installing PyPy
    • Download a pre-built PyPy
    • Installing PyPy
    • Installing using virtualenv
    • Building PyPy yourself
  • Building PyPy from Source
    • Clone the repository
    • Install build-time dependencies
    • Run the translation
    • Translating with non-standard options
    • Packaging (preparing for installation)
    • Installation
  • Frequently Asked Questions
    • What is PyPy?
    • Is PyPy a drop in replacement for CPython?
    • Module xyz does not work with PyPy: ImportError
    • Do CPython Extension modules work with PyPy?
    • On which platforms does PyPy run?
    • Which Python version (2.x?) does PyPy implement?
    • Does PyPy have a GIL? Why?
    • Is PyPy more clever than CPython about Tail Calls?
    • How do I write extension modules for PyPy?
    • How fast is PyPy?
    • Couldn’t the JIT dump and reload already-compiled machine code?
    • Would type annotations help PyPy’s performance?
    • Can I use PyPy’s translation toolchain for other languages besides Python?
    • How do I get into PyPy development? Can I come to sprints?
    • OSError: ... cannot restore segment prot after reloc... Help?
  • Differences between PyPy and CPython
    • Extension modules
    • Differences related to garbage collection strategies
    • Subclasses of built-in types
    • Mutating classes of objects which are already used as dictionary keys
    • Ignored exceptions
    • Object Identity of Primitive Values, is and id
    • Miscellaneous
  • Writing extension modules for pypy
    • CFFI
    • CTypes
    • Reflex
  • RPython Mixed Modules
    • cppyy: C++ bindings for PyPy
      • Motivation
      • Installation
      • Basic bindings example
      • Automatic class loader
      • Advanced example
      • Features
      • Templates
      • The fast lane
      • CPython
      • Python3
        • Backends for cppyy
        • File example.h
  • Embedding PyPy
    • Minimal example
    • More complete example
    • Finding pypy_home
    • Threading
  • Garbage collector configuration
    • Minimark
  • JIT hooks
  • Application-level Stackless features
    • Introduction
    • Theory
    • Application level interface
      • Continulets
      • Genlets
      • Greenlets
      • Unimplemented features
      • Recursion depth limit
      • Stacklets
      • Theory of composability
  • The __pypy__ module
    • Generally available functionality
    • Transparent Proxy Functionality
    • Functionality available on py.py (not after translation)
  • What PyPy can do for your objects
    • Transparent Proxies
      • Example of the core mechanism
      • Example of recording all operations on builtins
      • Transparent Proxy PyPy builtins and support
      • tputil helper module
      • Further points of interest
      • Implementation Notes
  • PyPy’s sandboxing features
    • Introduction
    • Overview
    • Howto
  • Software Transactional Memory
    • What pypy-stm is for
      • ...and what pypy-stm is not for
    • Getting Started
      • Current status (stmgc-c7)
    • Python 3, CPython, and others
    • User Guide
      • How to write multithreaded programs: the 10‘000-feet view
      • Drop-in replacement
      • transaction.TransactionQueue
      • Atomic sections
      • Locks
      • Miscellaneous functions
      • More details about conflicts
    • Implementation
      • Technical reports
      • Reference to implementation details
    • See also
  • Translating on Windows
    • Translating PyPy with Visual Studio
    • Preparing Windows for the large build
    • Installing external packages
    • Abridged method (for -Ojit builds using Visual Studio 2008)
    • Nonabrided method (building from scratch)
      • The Boehm garbage collector
      • The zlib compression library
      • The bz2 compression library
      • The sqlite3 database library
      • The expat XML parser
      • The OpenSSL library
      • TkInter module support
    • Using the mingw compiler
      • libffi for the mingw compiler
      • hacking on PyPy with the mingw compiler
    • What is missing for a full 64-bit translation
  • Getting Started Developing With PyPy
    • Using Mercurial
    • Running PyPy’s unit tests
    • Special Introspection Features of the Untranslated Python Interpreter
      • Interpreter-level console
      • pyinteractive.py options
      • Tracing bytecode and operations on objects
    • Demos
    • Additional Tools for running (and hacking) PyPy
      • graphviz & pygame for flow graph viewing (highly recommended)
      • py.test and the py lib
    • Getting involved
    • Where to start reading the sources
  • How to contribute to PyPy
    • Don’t just hack
    • Test driven development
    • Layers
  • You want to help with PyPy, now what?
    • Architecture
    • Toolset
  • Goals and Architecture Overview
    • Mission statement
    • High Level Goals
    • PyPy Python Interpreter
  • PyPy’s Configuration Handling
    • Main Assumption
    • API Details
      • Description of Options
        • OptionDescription
        • ChoiceOption
        • BoolOption
        • IntOption
        • FloatOption
        • StrOption
      • Configuration Objects
      • Production of optparse Parsers
    • The usage of config objects in PyPy
  • Potential project list
    • Simple tasks for newcomers
    • Mid-to-large tasks
      • Make bytearray type fast
      • Implement copy-on-write list slicing
      • Numpy improvements
      • Improving the jitviewer
      • Optimized Unicode Representation
      • Translation Toolchain
      • Various GCs
      • STM (Software Transactional Memory)
      • Introduce new benchmarks
      • Embedding PyPy and improving CFFI
      • Optimising cpyext (CPython C-API compatibility layer)
    • Make more python modules pypy-friendly
  • Project Documentation
    • Goals and Architecture Overview
      • Mission statement
      • High Level Goals
      • PyPy Python Interpreter
    • Coding Guide
      • Overview and motivation
        • CPython vs. PyPy
        • Application-level and interpreter-level execution and objects
        • Application level is often preferable
        • Our runtime interpreter is “RPython”
      • Wrapping rules
        • Wrapping
        • Naming conventions
        • Operations on w_xxx
        • Application-level exceptions
      • Modules in PyPy
        • Determining the location of a module implementation
        • Module directories / Import order
        • Modifying a CPython library module or regression test
        • Implementing a mixed interpreter/application level Module
        • application level definitions
        • interpreter level definitions
        • Testing modules in lib_pypy/
        • Testing modules in pypy/module
        • Testing modules in lib-python
      • Naming conventions and directory layout
        • Directory and File Naming
        • Naming of python objects
        • Committing & Branching to the repository
      • Using the development bug/feature tracker
      • Testing in PyPy
        • Interpreter level tests
        • Application Level tests
        • Command line tool test_all
        • Coverage reports
        • Test conventions
      • Changing documentation and website
        • documentation/website files in your local checkout
        • Automatically test documentation/website changes
    • Sprint reports from PyPy sprints 2003-2010
    • Papers, talks and related projects
      • Papers
      • Talks and Presentations
        • Talks in 2010
        • Talks in 2009
        • Talks in 2008
        • Talks in 2007
        • Talks in 2006
        • Talks in 2005
        • Talks in 2004
        • Talks in 2003
      • Related projects
    • PyPy video documentation
      • Copyrights and Licensing
      • Trailer: PyPy at the PyCon 2006
      • Interview with Tim Peters
      • Interview with Bob Ippolito
      • Introductory talk on PyPy
      • Talk on Agile Open Source Methods in the PyPy project
      • PyPy Architecture session
      • Sprint tutorial
      • Scripting .NET with IronPython by Jim Hugunin
      • Bram Cohen, founder and developer of BitTorrent
      • Keynote speech by Guido van Rossum on the new Python 2.5 features
      • Trailer: PyPy sprint at the University of Palma de Mallorca
      • Coding discussion of core developers Armin Rigo and Samuele Pedroni
      • PyPy technical talk at the University of Palma de Mallorca
    • PyPy - Overview over the EU-reports
      • Reports of 2007
      • Reports of 2006
      • Reports of 2005
    • Distributed and agile development in PyPy
      • Sprint driven development:
        • How is it done?
        • Can I join in?
    • Glossary
  • Source Code Documentation
    • The Object Space
      • Introduction
      • Object Space Interface
        • Administrative Functions
        • Operations on Objects in the Object Space
        • Convenience Functions
        • Creation of Application Level objects
        • Conversions from Application Level to Interpreter Level
        • Data Members
      • The Standard Object Space
        • Introduction
        • Object types
      • Object Space proxies
    • Bytecode Interpreter
      • Introduction and Overview
      • Bytecode Interpreter Implementation Classes
        • Frame classes
        • Code Class
        • Function and Method classes
        • Arguments Class
        • Module Class
        • Gateway classes
        • Introspection and Descriptors
    • Standard Interpreter Optimizations
      • Introduction
      • Object Optimizations
        • Integer Optimizations
        • Dictionary Optimizations
        • List Optimizations
        • User Class Optimizations
      • Interpreter Optimizations
        • Special Bytecodes
      • Overall Effects
    • PyPy Parser
      • Overview
      • Tokenizer
      • Parser
        • Building the Python grammar
        • Parser implementation
        • Parsing Python
      • Compiler
        • Building AST
        • AST Optimization
        • Symbol analysis
        • Bytecode generation
    • Configuration Options for PyPy
      • PyPy Python interpreter options
        • Internal Options
      • General translation options
        • Internal Options
      • translation
        • translation.continuation
        • translation.type_system
        • translation.backend
        • translation.shared
        • translation.log
        • translation.gc
        • translation.gctransformer
        • translation.gcremovetypeptr
        • translation.gcrootfinder
        • translation.thread
        • translation.sandbox
        • translation.rweakref
        • translation.jit
        • translation.jit_backend
        • translation.jit_profiler
        • translation.check_str_without_nul
        • translation.verbose
        • translation.cc
        • translation.profopt
        • translation.noprofopt
        • translation.instrument
        • translation.countmallocs
        • translation.fork_before
        • translation.dont_write_c_files
        • translation.instrumentctl
        • translation.output
        • translation.secondaryentrypoints
        • translation.dump_static_data_info
        • translation.no__thread
        • translation.make_jobs
        • translation.list_comprehension_operations
        • translation.withsmallfuncsets
        • translation.taggedpointers
        • translation.lldebug
        • translation.lldebug0
        • translation.icon
        • translation.backendopt
        • translation.platform
      • objspace
        • objspace.usemodules
        • objspace.allworkingmodules
        • objspace.extmodules
        • objspace.translationmodules
        • objspace.usepycfiles
        • objspace.lonepycfiles
        • objspace.soabi
        • objspace.honor__builtins__
        • objspace.disable_call_speedhacks
        • objspace.std
      • The --opt or -O translation option
    • Command line reference
      • Manual pages
        • pypy
    • PyPy directory cross-reference
  • Making a PyPy Release
    • Overview
    • Release Steps
  • Papers, talks and related projects
    • Papers
    • Talks and Presentations
      • Talks in 2010
      • Talks in 2009
      • Talks in 2008
      • Talks in 2007
      • Talks in 2006
      • Talks in 2005
      • Talks in 2004
      • Talks in 2003
    • Related projects
  • More sprints
    • EuroPython PyPy sprint 6-9 July 2006
    • PyPy at XP 2006 and Agile 2006
    • Duesseldorf PyPy sprint 2-9 June 2006
    • PyPy sprint at Akihabara (Tokyo, Japan)
    • PyPy at Python UK/ACCU Conference (United Kingdom)
    • PyPy at XPDay France 2006 in Paris March 23rd - March 24th 2006
    • Logic Sprint at Louvain-la-Neuve University (Louvain-la-Neuve, Belgium)
    • PyCon Sprint 2006 (Dallas, Texas, USA)
    • Talks at PyCon 2006 (Dallas, Texas, USA)
    • PyPy at Solutions Linux in Paris January 31st - February 2nd 2006
    • PyPy Sprint in Palma De Mallorca 23rd - 29th January 2006
    • Preliminary EU reports released
    • PyPy Sprint in Göteborg 7th - 11th December 2005
    • PyPy release 0.8.0
    • PyPy Sprint in Paris 10th-16th October 2005
    • PyPy release 0.7.0
    • PyPy Sprint in Heidelberg 22nd-29th August 2005
    • PyPy Hildesheim2 finished: first self-contained PyPy run!
    • EuroPython 2005 sprints finished
  • Old discussion notes needing categorization
    • Ordering finalizers in the SemiSpace GC
      • Goal
      • Algorithm
    • Designing thread pickling or “the Essence of Stackless Python”
      • What is meant by pickling?
      • What is not meant by pickling?
      • Basic necessities
      • The real problem
      • Why a problem?
      • SLP switching strategies
      • Analogies between SLP and PyPy
      • Ways to handle the problem in a minimalistic way
      • Just an addition after some more thinking
    • Possible improvements of the rpython language
      • Improve the interpreter API
      • RPython language
      • Extensible type system for llexternal
    • PyPy’s ctypes implementation
      • Summary
      • Low-level part: _rawffi
      • High-level parts
      • Discussion and limitations
      • Running application examples
        • pyglet
      • ctypes configure
        • idea
        • installation
        • usage
    • A JIT-aware profiler
      • Expected output
      • What to do about “inner” bridges?
      • Detecting the enter to/exit from a loop
  • Historical release notes
    • CPython 2.7 compatible versions
      • PyPy 2.6.0 - Cameo Charm
        • What is PyPy?
        • Highlights
      • PyPy 2.5.1 - Pineapple Bromeliad
        • What is PyPy?
        • Highlights
      • PyPy 2.5.0 - Pincushion Protea
        • What is PyPy?
        • Highlights
      • PyPy 2.4 - Snow White
        • What is PyPy?
        • Highlights
      • PyPy 2.3.1 - Terrestrial Arthropod Trap Revisited
        • What is PyPy?
        • Highlights
      • PyPy 2.3 - Terrestrial Arthropod Trap
        • What is PyPy?
        • Highlights
      • PyPy 2.2.1 - Incrementalism.1
        • What is PyPy?
        • Highlights
      • PyPy 2.2 - Incrementalism
        • What is PyPy?
        • Highlights
      • PyPy 2.1 - Considered ARMful
        • What is PyPy?
        • Highlights
      • PyPy 2.1 beta 2
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy 2.1 beta 1
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy 2.1 - Considered ARMful
        • What is PyPy?
        • Highlights
      • PyPy 2.0.2 - Fermi Panini
        • What is PyPy?
        • Highlights
      • PyPy 2.0.1 - Bohr Smørrebrød
        • What is PyPy?
        • Highlights
      • PyPy 2.0 - Einstein Sandwich
        • What is PyPy?
        • Highlights
      • PyPy 2.0 beta 2
        • What is PyPy?
        • How to use PyPy?
        • Highlights
        • Improvements since 1.9
      • PyPy 2.0 beta 1
        • What is PyPy?
        • How to use PyPy?
        • Regressions
        • Highlights
        • Things we’re working on
      • PyPy 1.9 - Yard Wolf
        • What is PyPy?
        • Thanks to our donors
        • Highlights
        • JitViewer
      • PyPy 1.8 - business as usual
        • What is PyPy?
        • Highlights
        • Ongoing work
      • PyPy 1.7 - widening the sweet spot
        • What is PyPy?
        • Highlights
        • Things that didn’t make it, expect in 1.8 soon
        • Fundraising
      • PyPy 1.6 - kickass panda
        • What is PyPy?
        • Highlights
      • PyPy 1.5: Catching Up
        • What is PyPy?
        • More highlights
      • PyPy 1.4.1
        • What is PyPy
        • More highlights
      • PyPy 1.4beta - towards 1.4.0 release
      • PyPy 1.4: Ouroboros in practice
        • What is PyPy
        • More highlights
      • PyPy 1.3: Stabilization
        • Highlights of this release
      • PyPy 1.2: Just-in-Time Compilation
        • Highlights of This Release
        • What is PyPy?
      • PyPy 1.1: Compatibility & Consolidation
        • Highlights of This Release
        • Other Changes
        • What is PyPy?
      • PyPy 1.0: JIT compilers for free and more
        • What is PyPy?
        • 1.0.0 Feature highlights
        • Funding partners and organizations
      • pypy-0.99.0: new object spaces, optimizations, configuration ...
        • What is PyPy?
        • Key 0.99.0 Features
        • What about 1.0?
        • Funding partners and organizations
      • pypy-0.9.0: stackless, new extension compiler
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
        • Project Details
      • pypy-0.8.0: Translatable compiler/parser and some more speed
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
      • pypy-0.7.0: first PyPy-generated Python Implementations
        • What is PyPy (about)?
        • Where to start?
        • Ongoing work and near term goals
      • The PyPy 0.6 release
      • What it is and where to start
      • Interesting bits and highlights
      • Ongoing work and near term goals
    • CPython 3.2 compatible versions
      • PyPy3 2.4 - Snow White
        • What is PyPy?
        • PyPy3 Highlights
        • Further Highlights (shared w/ PyPy2)
      • PyPy3 2.3.1 - Fulcrum
        • Highlights
        • What is PyPy?
        • How to use PyPy?
      • PyPy3 2.1 beta 1
        • Highlights
        • What is PyPy?
        • How to use PyPy?
  • Changelogs
    • CPython 2.7 compatible versions
      • What’s new in PyPy 2.6+
      • What’s new in PyPy 2.5+
      • What’s new in PyPy 2.5.1
      • What’s new in PyPy 2.5.0
      • What’s new in PyPy 2.4+
      • What’s new in PyPy 2.3
      • What’s new in PyPy 2.2.1
      • What’s new in PyPy 2.2
      • What’s new in PyPy 2.1
      • What’s new in PyPy 2.0
      • What’s new in PyPy xxx
      • What’s new in PyPy 1.9
    • CPython 3.2 compatible versions
      • What’s new in PyPy3 2.4.0
      • What’s new in PyPy3 2.3.1
  • Contributors to PyPy
 
PyPy
  • Docs »
  • Old discussion notes needing categorization
  • Edit on Bitbucket

Old discussion notes needing categorization¶

The following are old discussion notes which may or may not reflect the current reality.

Help from domain experts would be welcome, since some of these documents probably ought to be moved to a more prominent location, some should be deleted, and some left here.

  • Ordering finalizers in the SemiSpace GC
    • Goal
    • Algorithm
  • Designing thread pickling or “the Essence of Stackless Python”
    • What is meant by pickling?
    • What is not meant by pickling?
    • Basic necessities
    • The real problem
    • Why a problem?
    • SLP switching strategies
    • Analogies between SLP and PyPy
    • Ways to handle the problem in a minimalistic way
    • Just an addition after some more thinking
  • Possible improvements of the rpython language
    • Improve the interpreter API
    • RPython language
    • Extensible type system for llexternal
  • PyPy’s ctypes implementation
    • Summary
    • Low-level part: _rawffi
    • High-level parts
    • Discussion and limitations
    • Running application examples
      • pyglet
    • ctypes configure
      • idea
      • installation
      • usage
  • A JIT-aware profiler
    • Expected output
    • What to do about “inner” bridges?
    • Detecting the enter to/exit from a loop
Next Previous

© Copyright 2015, The PyPy Project.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: release-2.6.x
Versions
latest
release-2.6.x
release-2.5.x
release-2.4.x
Downloads
htmlzip
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.