# pypy / pypy / doc / index.rst

 David Malcolm 1e46012 2011-03-14 David Malcolm 246d7e8 2011-03-16 Antonio Cuni 8146c72 2011-07-06 Maciej Fijalkows… 0cd89b0 2012-11-22 David Malcolm 246d7e8 2011-03-16 David Malcolm fd5be84 2011-03-16 David Malcolm 11a3f52 2011-03-16 Maciej Fijalkows… ba396e4 2011-06-04 Carl Friedrich B… 4c65565 2011-04-27 Armin Rigo 365c988 2011-08-28 Carl Friedrich B… 4c65565 2011-04-27 David Malcolm fd5be84 2011-03-16 David Malcolm 246d7e8 2011-03-16 lac 7d2b72d 2011-04-26 David Malcolm 246d7e8 2011-03-16 Maciej Fijalkows… 276816e 2013-01-02 David Malcolm 246d7e8 2011-03-16 holger krekel 8dfcde3 2011-05-09 David Malcolm 246d7e8 2011-03-16 David Malcolm fd5be84 2011-03-16 Maciej Fijalkows… d8be61a 2012-11-22 David Malcolm 11a3f52 2011-03-16 lac b6f5304 2011-04-29 Maciej Fijalkows… ba396e4 2011-06-04 Carl Friedrich B… 4c65565 2011-04-27 Armin Rigo 16a0547 2011-04-30 Maciej Fijalkows… 0cd89b0 2012-11-22 Carl Friedrich B… 4c65565 2011-04-27 Maciej Fijalkows… 0cd89b0 2012-11-22 Carl Friedrich B… 4c65565 2011-04-27 Armin Rigo e9e7c0e 2011-05-07 Carl Friedrich B… 4c65565 2011-04-27 Armin Rigo 365c988 2011-08-28 Carl Friedrich B… 4c65565 2011-04-27 David Malcolm 16c4035 2011-03-14 David Malcolm 177cd35 2011-03-16 David Malcolm 1e46012 2011-03-14 David Malcolm 47ed8f9 2011-03-16 Carl Friedrich B… 4c65565 2011-04-27 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 47ed8f9 2011-03-16 David Malcolm c2797ba 2011-03-14 Stefano Rivera 565fba5 2012-02-06 David Malcolm c2797ba 2011-03-14 David Malcolm 47ed8f9 2011-03-16 David Malcolm c2797ba 2011-03-14 Stefano Rivera 565fba5 2012-02-06 David Malcolm c2797ba 2011-03-14 lac 010ca37 2011-04-26 Carl Friedrich B… 224accc 2011-04-27 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 lac 010ca37 2011-04-26 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 lac 010ca37 2011-04-26 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm 16c4035 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 David Malcolm 1e46012 2011-03-14 David Malcolm c2797ba 2011-03-14 lac 010ca37 2011-04-26 David Malcolm 1e46012 2011-03-14 David Malcolm a9bf990 2011-03-16 David Malcolm b2e52db 2011-03-16 lac 010ca37 2011-04-26 David Malcolm 1e46012 2011-03-14 Carl Friedrich B… 4c65565 2011-04-27   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 Welcome to PyPy Development ============================================= The PyPy project aims at producing a flexible and fast Python_ implementation. The guiding idea is to translate a Python-level description of the Python language itself to lower level languages. Rumors have it that the secret goal is being faster-than-C which is nonsense, isn't it? more..._ Getting into PyPy ... ============================================= * Getting started_: how to install and run the PyPy Python interpreter * FAQ_: some frequently asked questions. * Release 2.0 beta 1_: the latest official release * PyPy Blog_: news and status info about PyPy * Papers_: Academic papers, talks, and related projects * speed.pypy.org_: Daily benchmarks of how fast PyPy is * potential project ideas_: In case you want to get your feet wet... Documentation for the PyPy Python Interpreter =============================================== New features of PyPy's Python Interpreter and Translation Framework: * Differences between PyPy and CPython_ * What PyPy can do for your objects_ * Continulets and greenlets_ * JIT Generation in PyPy_ * Sandboxing Python code_ Status_ of the project. Mailing lists, bug tracker, IRC channel ============================================= * Development mailing list_: development and conceptual discussions. * Mercurial commit mailing list_: updates to code and documentation. * Development bug/feature tracker_: filing bugs and feature requests. * **IRC channel #pypy on freenode**: Many of the core developers are hanging out at #pypy on irc.freenode.net. You are welcome to join and ask questions (if they are not already developed in the FAQ_). You can find logs of the channel here_. Meeting PyPy developers ======================= The PyPy developers are organizing sprints and presenting results at conferences all year round. They will be happy to meet in person with anyone interested in the project. Watch out for sprint announcements on the development mailing list_. .. _Python: http://docs.python.org/index.html .. _more...: architecture.html#mission-statement .. _PyPy blog: http://morepypy.blogspot.com/ .. _development bug/feature tracker: https://bugs.pypy.org .. _here: http://tismerysoft.de/pypy/irc-logs/pypy .. _Mercurial commit mailing list: http://python.org/mailman/listinfo/pypy-commit .. _development mailing list: http://python.org/mailman/listinfo/pypy-dev .. _FAQ: faq.html .. _Getting Started: getting-started.html .. _Papers: extradoc.html .. _Videos: video-index.html .. _Release 2.0 beta 1: http://pypy.org/download.html .. _speed.pypy.org: http://speed.pypy.org .. _RPython toolchain: translation.html .. _potential project ideas: project-ideas.html Project Documentation ===================================== PyPy was funded by the EU for several years. See the web site of the EU project_ for more details. .. _web site of the EU project: http://pypy.org architecture_ gives a complete view of PyPy's basic design. coding guide_ helps you to write code for PyPy (especially also describes coding in RPython a bit). sprint reports_ lists reports written at most of our sprints, from 2003 to the present. papers, talks and related projects_ lists presentations and related projects as well as our published papers. PyPy video documentation_ is a page linking to the videos (e.g. of talks and introductions) that are available. Technical reports_ is a page that contains links to the reports that we submitted to the European Union. development methodology_ describes our sprint-driven approach. LICENSE_ contains licensing details (basically a straight MIT-license). Glossary_ of PyPy words to help you align your inner self with the PyPy universe. Status =================================== PyPy can be used to run Python programs on Linux, OS/X, Windows, on top of .NET, and on top of Java. To dig into PyPy it is recommended to try out the current Mercurial default branch, which is always working or mostly working, instead of the latest release, which is 2.0 beta1__. .. __: release-2.0.0-beta1.html PyPy is mainly developed on Linux and Mac OS X. Windows is supported, but platform-specific bugs tend to take longer before we notice and fix them. Linux 64-bit machines are supported (though it may also take some time before we notice and fix bugs). PyPy's own tests summary_, daily updated, run through BuildBot infrastructure. You can also find CPython's compliance tests run with compiled pypy-c executables there. Source Code Documentation =============================================== object spaces_ discusses the object space interface and several implementations. bytecode interpreter_ explains the basic mechanisms of the bytecode interpreter and virtual machine. interpreter optimizations_ describes our various strategies for improving the performance of our interpreter, including alternative object implementations (for strings, dictionaries and lists) in the standard object space. translation_ is a detailed overview of our translation process. The rtyper_ is the largest component of our translation process. dynamic-language translation_ is a paper that describes the translation process, especially the flow object space and the annotator in detail. (This document is one of the EU reports_.) low-level encapsulation_ describes how our approach hides away a lot of low level details. This document is also part of the EU reports_. translation aspects_ describes how we weave different properties into our interpreter during the translation process. This document is also part of the EU reports_. garbage collector_ strategies that can be used by the virtual machines produced by the translation process. parser_ contains (outdated, unfinished) documentation about the parser. rlib_ describes some modules that can be used when implementing programs in RPython. configuration documentation_ describes the various configuration options that allow you to customize PyPy. CLI backend_ describes the details of the .NET backend. JIT Generation in PyPy_ describes how we produce the Python Just-in-time Compiler from our Python interpreter. .. _FAQ: faq.html .. _Glossary: glossary.html .. _PyPy video documentation: video-index.html .. _parser: parser.html .. _development methodology: dev_method.html .. _sprint reports: sprint-reports.html .. _papers, talks and related projects: extradoc.html .. _object spaces: objspace.html .. _interpreter optimizations: interpreter-optimizations.html .. _translation: translation.html .. _dynamic-language translation: https://bitbucket.org/pypy/extradoc/raw/tip/eu-report/D05.1_Publish_on_translating_a_very-high-level_description.pdf .. _low-level encapsulation: low-level-encapsulation.html .. _translation aspects: translation-aspects.html .. _configuration documentation: config/ .. _coding guide: coding-guide.html .. _architecture: architecture.html .. _getting started: getting-started.html .. _bytecode interpreter: interpreter.html .. _EU reports: index-report.html .. _Technical reports: index-report.html .. _summary: http://buildbot.pypy.org/summary .. _ideas for PyPy related projects: project-ideas.html .. _Nightly builds and benchmarks: http://tuatara.cs.uni-duesseldorf.de/benchmark.html .. _directory reference: .. _rlib: rlib.html .. _Sandboxing Python code: sandbox.html .. _LICENSE: https://bitbucket.org/pypy/pypy/src/default/LICENSE PyPy directory cross-reference ------------------------------ Here is a fully referenced alphabetical two-level deep directory overview of PyPy: ================================ =========================================== Directory explanation/links ================================ =========================================== pypy/annotation/_ type inferencing code_ for RPython_ programs pypy/bin/_ command-line scripts, mainly py.py_ and translatorshell.py_ pypy/config/_ handles the numerous options for building and running PyPy pypy/doc/_ text versions of PyPy developer documentation pypy/doc/config/_ documentation for the numerous translation options pypy/doc/discussion/_ drafts of ideas and documentation doc/*/ other specific documentation topics or tools pypy/interpreter/_ bytecode interpreter_ and related objects (frames, functions, modules,...) pypy/interpreter/pyparser/_ interpreter-level Python source parser pypy/interpreter/astcompiler/_ interpreter-level bytecode compiler, via an AST representation pypy/module/_ contains mixed modules_ implementing core modules with both application and interpreter level code. Not all are finished and working. Use the --withmod-xxx or --allworkingmodules translation options. pypy/objspace/_ object space_ implementations pypy/objspace/flow/_ the FlowObjSpace_ implementing abstract interpretation_ pypy/objspace/std/_ the StdObjSpace_ implementing CPython's objects and types pypy/rlib/_ a "standard library"_ for RPython_ programs pypy/rpython/_ the RPython Typer_ pypy/rpython/lltypesystem/_ the low-level type system_ for C-like backends pypy/rpython/ootypesystem/_ the object-oriented type system_ for OO backends pypy/rpython/memory/_ the garbage collector_ construction framework pypy/tool/_ various utilities and hacks used from various places pypy/tool/algo/_ general-purpose algorithmic and mathematic tools pypy/tool/pytest/_ support code for our testing methods_ pypy/translator/_ translation_ backends and support code pypy/translator/backendopt/_ general optimizations that run before a backend generates code pypy/translator/c/_ the GenC backend_, producing C code from an RPython program (generally via the rtyper_) pypy/translator/cli/_ the CLI backend_ for .NET_ (Microsoft CLR or Mono_) pypy/translator/goal/_ our main PyPy-translation scripts_ live here pypy/translator/jvm/_ the Java backend pypy/translator/tool/_ helper tools for translation, including the Pygame graph viewer_ */test/ many directories have a test subdirectory containing test modules (see Testing in PyPy_) _cache/ holds cache files from internally translating application level to interpreterlevel_ code. ================================ =========================================== .. _bytecode interpreter: interpreter.html .. _translating application level to interpreterlevel: geninterp.html .. _Testing in PyPy: coding-guide.html#testing-in-pypy .. _mixed modules: coding-guide.html#mixed-modules .. _modules: coding-guide.html#modules .. _basil: http://people.cs.uchicago.edu/~jriehl/BasilTalk.pdf .. _object space: objspace.html .. _FlowObjSpace: objspace.html#the-flow-object-space .. _transparent proxies: objspace-proxies.html#tproxy .. _Differences between PyPy and CPython: cpython_differences.html .. _What PyPy can do for your objects: objspace-proxies.html .. _Continulets and greenlets: stackless.html .. _StdObjSpace: objspace.html#the-standard-object-space .. _abstract interpretation: http://en.wikipedia.org/wiki/Abstract_interpretation .. _rpython: coding-guide.html#rpython .. _type inferencing code: translation.html#the-annotation-pass .. _RPython Typer: translation.html#rpython-typer .. _testing methods: coding-guide.html#testing-in-pypy .. _translation: translation.html .. _GenC backend: translation.html#genc .. _CLI backend: cli-backend.html .. _py.py: getting-started-python.html#the-py.py-interpreter .. _translatorshell.py: getting-started-dev.html#try-out-the-translator .. _JIT: jit/index.html .. _JIT Generation in PyPy: jit/index.html .. _just-in-time compiler generator: jit/index.html .. _rtyper: rtyper.html .. _low-level type system: rtyper.html#low-level-type .. _object-oriented type system: rtyper.html#oo-type .. _garbage collector: garbage_collection.html .. _main PyPy-translation scripts: getting-started-python.html#translating-the-pypy-python-interpreter .. _.NET: http://www.microsoft.com/net/ .. _Mono: http://www.mono-project.com/ .. _"standard library": rlib.html .. _graph viewer: getting-started-dev.html#try-out-the-translator .. The following documentation is important and reasonably up-to-date: .. extradoc: should this be integrated one level up: dcolish? .. toctree:: :maxdepth: 1 :hidden: getting-started.rst getting-started-python.rst getting-started-dev.rst windows.rst faq.rst commandline_ref.rst architecture.rst coding-guide.rst cpython_differences.rst garbage_collection.rst gc_info.rst interpreter.rst objspace.rst __pypy__-module.rst objspace-proxies.rst config/index.rst dev_method.rst extending.rst extradoc.rst video-index.rst glossary.rst contributor.rst interpreter-optimizations.rst configuration.rst parser.rst rlib.rst rtyper.rst rffi.rst translation.rst jit/index.rst jit/overview.rst jit/pyjitpl5.rst index-of-release-notes.rst ctypes-implementation.rst how-to-release.rst index-report.rst stackless.rst sandbox.rst discussions.rst cleanup.rst sprint-reports.rst eventhistory.rst statistic/index.rst Indices and tables ================== * :ref:genindex * :ref:search * :ref:glossary .. include:: _ref.txt 
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.