.. Welcome to PyPy Development ============================================= PyPy開発へようこそ ============================================= .. 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...`_ PyPyプロジェクトは、柔軟で高速なPython実装を生み出すことをを目指しています。 指針の考えは、PythonによるPython自身の記述を低レベルの言語へ翻訳することです。 噂ではCより高速になるのを秘密の目標としているらしい。この噂はくだらん。だろう? `more...`_ .. Getting into PyPy ... ============================================= PyPyの世界へ... ============================================= .. * `Getting started`_: how to install and run the PyPy Python interpreter * `Getting started`_ : インストールとPyPy Pythonインタプリタの実行方法 .. * `FAQ`_: some frequently asked questions. * `FAQ`_ : 頻繁に聞かれる質問。 .. * `Release 1.6`_: the latest official release * `Release 1.6`_: 最新の公式リリース .. * `PyPy Blog`_: news and status info about PyPy * `PyPy Blog`_: PyPyについてのニュースと状況 .. * `Papers`_: Academic papers, talks, and related projects * `Papers`_: 学術論文、話題、関連するプロジェクト .. * `speed.pypy.org`_: Daily benchmarks of how fast PyPy is * `speed.pypy.org`_: PyPyがどのくらいの速度なのか、毎日のベンチマークです。 .. * `potential project ideas`_: In case you want to get your feet wet... * `potential project ideas`_: あなたがその世界に飛び込んでみたいなら... .. Documentation for the PyPy Python Interpreter =============================================== PyPy Python インタプリタのドキュメント =============================================== .. `getting started`_ provides hands-on instructions including a two-liner to run the PyPy Python interpreter on your system, examples on advanced features and entry points for using the `RPython toolchain`_. `getting started`_ はシステム上でPyPy Python インタプリタを実行するには2つのライナーを含む実践的な手順を説明します。例えば、 `RPython toolchain`_ を使った次世代の機能とエントリポイントがあります。 .. `FAQ`_ contains some frequently asked questions. `FAQ`_ は頻繁に述べられるいくつかの質疑応答があります。 .. New features of PyPy's Python Interpreter and Translation Framework: * `Differences between PyPy and CPython`_ * `What PyPy can do for your objects`_ * `Stackless and coroutines`_ * `JIT Generation in PyPy`_ * `Sandboxing Python code`_ PyPyのPythonインタプリタの新機能と翻訳フレームワーク: * `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 ============================================= メーリングリスト、バグトラッカ、IRCチャンネル ============================================= .. * `Development mailing list`_: development and conceptual discussions. * `Development mailing list`_: 開発とコンセプトの議論 .. * `Mercurial commit mailing list`_: updates to code and documentation. * `Mercurial commit mailing list`_: コードの更新とドキュメント .. * `Development bug/feature tracker`_: filing bugs and feature requests. * `Development bug/feature tracker`_: バグの書き起こしと将来の要望 .. * **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_. * **IRC channel #pypy on freenode**: コア開発者の多くは、irc.freenode.netの#pypyにぶら下がっています。 参加を歓迎し、質問を歓迎します。 (もし質問が FAQ_ に存在しなかった場合) あなたはチャンネルのログをここで見つけることが出来ます。 here_. .. Meeting PyPy developers ======================= PyPy開発者のミーティング ========================= .. 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`_. PyPy開発者はスプリントを整備し一年中、カンファレンスで結果を披露します。 それらはプロジェクトに興味をもった人に素晴らしい出会いをもたらします。 スプリントのアナウンスに目を配ってください `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://codespeak.net/issue/pypy-dev/ .. _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 1.6`: 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. PyPyは数年間、EUから資金供給を受けました。詳細はこちらです。 `web site of the EU project`_ .. _`web site of the EU project`: http://pypy.org .. architecture_ gives a complete view of PyPy's basic design. architecture_ は完全なPyPyの基本設計の考えを提供します。 .. `coding guide`_ helps you to write code for PyPy (especially also describes coding in RPython a bit). `coding guide`_ はPyPyのコードを書くのを手助けします。(とりわけRPythonの部分を記述する際に) .. `sprint reports`_ lists reports written at most of our sprints, from 2003 to the present. `sprint reports`_ 2003年から現在まで、リポートのリストの多くはわれわれのスプリントで書きました。 .. `papers, talks and related projects`_ lists presentations and related projects as well as our published papers. `papers, talks and related projects`_ プレゼンテーションのリストと関連したプロジェクトのみならず我々が発行した論文です。 .. `PyPy video documentation`_ is a page linking to the videos (e.g. of talks and introductions) that are available. `PyPy video documentation`_ は動画(例えば発表や会議)を観ることができるリンクです。 .. `Technical reports`_ is a page that contains links to the reports that we submitted to the European Union. `Technical reports`_ 我々がEUに提出したレポートのリンクを含んだページです。 .. `development methodology`_ describes our sprint-driven approach. `development methodology`_ 我々のスプリント指向によるアプローチを説明します。 .. `LICENSE`_ contains licensing details (basically a straight MIT-license). `LICENSE`_ は詳細なライセンス(標準的で変更のないMITライセンス)を含んでいます。 .. `Glossary`_ of PyPy words to help you align your inner self with the PyPy universe. `Glossary`_ のPyPy単語集はあなた自身をPyPyの分野と引き合わせる手助けをします。 .. 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 `1.6`__. PyPyはLinux、OS/X、Windows、.NET環境、Java環境でPythonプログラムを実行するために使用することができます。 PyPyについて掘り下げるために、最新のリリース `1.6`__ の代わりにつねに取り組んでいるまたは、主に取り組んでいる現在のMercurialのデフォルトブランチを試みることを推奨します。 .. __: release-1.6.0.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は主にLinuxとMac OS X上で開発されています。 Windowsはサポートされた。しかし、プラットフォーム特有のバグは我々が気づき直すのに時間がかかる傾向がある。 Linux 64-bitマシンはサポートされた。(だけれどもそれもまた我々が気づき直すのに、時間がかかるかもしれない) .. 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. PyPyは 毎日更新されるBuildBotインフラストラクチャを介して実行する独自のテストをもつ。 `summary`_ あなたはまたCPythonに含まれるテストをみつけ、コンパイルして、 ``pypy-c`` の実行とともに走らせることができます。 .. Source Code Documentation =============================================== ソースコードドキュメント =============================================== .. `object spaces`_ discusses the object space interface and several implementations. `object spaces`_ 議論するオブジェクトスペースインタフェースといくつかの実現について議論します。 .. `bytecode interpreter`_ explains the basic mechanisms of the bytecode interpreter and virtual machine. `bytecode interpreter`_ 標準的なバイトコードインタプリタの構造と仮想マシンの構造を説明します。 .. `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. `interpreter optimizations`_ 様々な我々のインタプリタにおける性能改善のための戦略を説明します。 .. `translation`_ is a detailed overview of our translation process. The rtyper_ is the largest component of our translation process. `translation`_ は我々の変換工程の詳細な概略です。 rtyper_ は最新の変換工程の構成要素です。 .. `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`_.) `dynamic-language translation`_ は変換工程を説明する資料です。とりわけオブジェクト空間の流れとアノテーションの詳細です。 (このドキュメントは `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`_. `low-level encapsulation`_ はどのように多くの低レベルな詳細を隠し離すのか説明します。このドキュメントも `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`_. `translation aspects`_ はどのように我々のインタプリタが変換工程の間に異なった特性を織りまぜているのか説明します。このドキュメントも `EU reports`_ の一つです。 .. `garbage collector`_ strategies that can be used by the virtual machines produced by the translation process. `garbage collector`_ は変換工程に生み出した仮想マシンを使われることができる戦略です。 .. `parser`_ contains (outdated, unfinished) documentation about the parser. `parser`_ は構文解析器に関するドキュメント(最新ではなく未完成)を含んでいます。 .. `rlib`_ describes some modules that can be used when implementing programs in RPython. `rlib`_ はRPythonのプログラム実装時に使うことが出来る、いくつかのモジュールについて説明します。 .. `configuration documentation`_ describes the various configuration options that allow you to customize PyPy. `configuration documentation`_ あなたに様々な許可されたPyPyのカスタマイズ設定オプションを説明します。 .. `CLI backend`_ describes the details of the .NET backend. `CLI backend`_ は.NETの裏側を説明します。 .. `JIT Generation in PyPy`_ describes how we produce the Python Just-in-time Compiler from our Python interpreter. `JIT Generation in PyPy`_ はどのようにPythonのジャストインタイムコンパイラをPythonインタプリタから提供するのか説明します。 .. _`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 ------------------------------ Pythonディレクトリ構成リファレンス ----------------------------------- .. Here is a fully referenced alphabetical two-level deep directory overview of PyPy: これはPyPyの全網羅された2階層の深さでアルファベット順によるディレクトリ構成の参考文書です。 .. ================================ =========================================== 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/trace.py`_ the `trace object space`_ monitoring bytecode and space operations `pypy/objspace/dump.py`_ the dump object space saves a large, searchable log file with all operations `pypy/objspace/thunk.py`_ the `thunk object space`_, providing unique object features `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. ================================ =========================================== ================================ =========================================== ディレクトリ 説明/リンク ================================ =========================================== `pypy/annotation/`_ `RPython`_ プログラム用の `type inferencing code`_ `pypy/bin/`_ コマンドラインスクリプトです。ほとんどは `py.py`_ と `translatorshell.py`_ です。 `pypy/config/`_ 非常にたくさんあるビルド時、PyPy実行時のオプションを扱います。 `pypy/doc/`_ PyPy開発者ドキュメントの試作版。 `pypy/doc/config/`_ 非常にたくさんある変換オプション。 `pypy/doc/discussion/`_ アイデア、ドキュメントの草案。 ``doc/*/`` 他に特化したドキュメント題目、ツール。 `pypy/interpreter/`_ `bytecode interpreter`_ と関連したオブジェクト。 (frames, functions, modules,...) `pypy/interpreter/pyparser/`_ インタプリタレベルのPythonコード構文解析器。 `pypy/interpreter/astcompiler/`_ インタプリタレベルのASTを通すバイトコードコンパイラ。 `pypy/module/`_ アプリケーションとインタプリタレベルの`mixed modules`_ とコアモジュールの実装を含んでいます。 全ての仕事が完了している訳ではない。 ``--withmod-xxx`` か ``--allworkingmodules`` 変換オプションを使って下さい。 `pypy/objspace/`_ `object space`_ の実装です。 `pypy/objspace/trace.py`_ `trace object space`_ はバイトコードと空間の活用します。 `pypy/objspace/dump.py`_ ダンプオブジェクトのスペースはすべての操作で検索可能な大規模なログファイルを節約をします。 `pypy/objspace/thunk.py`_ `thunk object space`_ は単一なオブジェクト機能を提供します。 `pypy/objspace/flow/`_ FlowObjSpace_ は `abstract interpretation`_ を実装します。 `pypy/objspace/std/`_ StdObjSpace_ はCpythonのオブジェクトと型を実装します。 `pypy/rlib/`_ RPython_ プログラムによる `"standard library"`_ です。 `pypy/rpython/`_ `RPython Typer`_ です。 `pypy/rpython/lltypesystem/`_ Cに似たバックエンドによる `low-level type system`_ です。 `pypy/rpython/ootypesystem/`_ OOバックエンドによる `object-oriented type system`_ です。 `pypy/rpython/memory/`_ `garbage collector`_ 構造です。 `pypy/tool/`_ 様々な箇所で使われるユーティリティ、ハックです。 `pypy/tool/algo/`_ 多目的なアルゴリズムと数理的なツールです。 `pypy/tool/pytest/`_ 私たちの `testing methods`_ の補助ツールです。 `pypy/translator/`_ translation_ バックエンドと補助コードです。 `pypy/translator/backendopt/`_ バックエンドがコードを生成する前に実行する、一般的な最適化です。 `pypy/translator/c/`_ `GenC backend`_ はRPythonプログラムから供給されたCコードです。(大抵は rtyper_ 経由) `pypy/translator/cli/`_ `.NET`_ のための `CLI backend`_ です。(Microsoft CLR または Mono_ ) `pypy/translator/goal/`_ 我々の `main PyPy-translation scripts`_ はここで生きている。 `pypy/translator/jvm/`_ Javaバックエンドです。 `pypy/translator/tool/`_ 変換を助けるPygameを含んだツールです。 `graph viewer`_ ``*/test/`` 多くのディレクトリは、テストモジュールを含んだサブディレクトリを持っています。( `Testing in PyPy`_ を見てください) ``_cache/`` 内部の `translating application level to interpreterlevel`_ コードをキャッシュファイルとして保持します。 ================================ =========================================== .. _`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 .. _`trace object space`: objspace.html#the-trace-object-space .. _`taint object space`: objspace-proxies.html#taint .. _`thunk object space`: objspace-proxies.html#thunk .. _`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 architecture.rst coding-guide.rst cpython_differences.rst garbage_collection.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