PyPy開発へようこそ

PyPyプロジェクトは、柔軟で高速なPython実装を生み出すことをを目指しています。 指針の考えは、PythonによるPython自身の記述を低レベルの言語へ翻訳することです。 噂ではCより高速になるのを秘密の目標としているらしい。この噂はくだらん。だろう? more...

PyPyの世界へ...

  • Getting started : インストールとPyPy Pythonインタプリタの実行方法
  • FAQ : 頻繁に聞かれる質問。
  • PyPy Blog: PyPyについてのニュースと状況
  • Papers: 学術論文、話題、関連するプロジェクト
  • speed.pypy.org: PyPyがどのくらいの速度なのか、毎日のベンチマークです。

PyPy Python インタプリタのドキュメント

getting started はシステム上でPyPy Python インタプリタを実行するには2つのライナーを含む実践的な手順を説明します。例えば、 RPython toolchain を使った次世代の機能とエントリポイントがあります。

FAQ は頻繁に述べられるいくつかの質疑応答があります。

PyPyのPythonインタプリタの新機能と翻訳フレームワーク:

プロジェクトの 対応状況

メーリングリスト、バグトラッカ、IRCチャンネル

  • IRC channel #pypy on freenode: コア開発者の多くは、irc.freenode.netの#pypyにぶら下がっています。 参加を歓迎し、質問を歓迎します。 (もし質問が FAQ に存在しなかった場合) あなたはチャンネルのログをここで見つけることが出来ます。 here.

PyPy開発者のミーティング

PyPy開発者はスプリントを整備し一年中、カンファレンスで結果を披露します。 それらはプロジェクトに興味をもった人に素晴らしい出会いをもたらします。 スプリントのアナウンスに目を配ってください development mailing list

プロジェクトドキュメント

PyPyは数年間、EUから資金供給を受けました。詳細はこちらです。 web site of the EU project

architecture は完全なPyPyの基本設計の考えを提供します。

coding guide はPyPyのコードを書くのを手助けします。(とりわけRPythonの部分を記述する際に)

sprint reports 2003年から現在まで、リポートのリストの多くはわれわれのスプリントで書きました。

papers, talks and related projects プレゼンテーションのリストと関連したプロジェクトのみならず我々が発行した論文です。

PyPy video documentation は動画(例えば発表や会議)を観ることができるリンクです。

Technical reports 我々がEUに提出したレポートのリンクを含んだページです。

development methodology 我々のスプリント指向によるアプローチを説明します。

LICENSE は詳細なライセンス(標準的で変更のないMITライセンス)を含んでいます。

Glossary のPyPy単語集はあなた自身をPyPyの分野と引き合わせる手助けをします。

対応状況

PyPyはLinux、OS/X、Windows、.NET環境、Java環境でPythonプログラムを実行するために使用することができます。 PyPyについて掘り下げるために、最新のリリース 1.6 の代わりにつねに取り組んでいるまたは、主に取り組んでいる現在のMercurialのデフォルトブランチを試みることを推奨します。

PyPyは主にLinuxとMac OS X上で開発されています。 Windowsはサポートされた。しかし、プラットフォーム特有のバグは我々が気づき直すのに時間がかかる傾向がある。 Linux 64-bitマシンはサポートされた。(だけれどもそれもまた我々が気づき直すのに、時間がかかるかもしれない)

PyPyは 毎日更新されるBuildBotインフラストラクチャを介して実行する独自のテストをもつ。 summary あなたはまたCPythonに含まれるテストをみつけ、コンパイルして、 pypy-c の実行とともに走らせることができます。

ソースコードドキュメント

object spaces 議論するオブジェクトスペースインタフェースといくつかの実現について議論します。

bytecode interpreter 標準的なバイトコードインタプリタの構造と仮想マシンの構造を説明します。

interpreter optimizations 様々な我々のインタプリタにおける性能改善のための戦略を説明します。

translation は我々の変換工程の詳細な概略です。 rtyper は最新の変換工程の構成要素です。

dynamic-language translation は変換工程を説明する資料です。とりわけオブジェクト空間の流れとアノテーションの詳細です。 (このドキュメントは EU reports の一つです。)

low-level encapsulation はどのように多くの低レベルな詳細を隠し離すのか説明します。このドキュメントも EU reports の一つです。

translation aspects はどのように我々のインタプリタが変換工程の間に異なった特性を織りまぜているのか説明します。このドキュメントも EU reports の一つです。

garbage collector は変換工程に生み出した仮想マシンを使われることができる戦略です。

parser は構文解析器に関するドキュメント(最新ではなく未完成)を含んでいます。

rlib はRPythonのプログラム実装時に使うことが出来る、いくつかのモジュールについて説明します。

configuration documentation あなたに様々な許可されたPyPyのカスタマイズ設定オプションを説明します。

CLI backend は.NETの裏側を説明します。

JIT Generation in PyPy はどのようにPythonのジャストインタイムコンパイラをPythonインタプリタから提供するのか説明します。

Pythonディレクトリ構成リファレンス

これはPyPyの全網羅された2階層の深さでアルファベット順によるディレクトリ構成の参考文書です。

ディレクトリ 説明/リンク
pypy/annotation/ RPython プログラム用の type inferencing code
pypy/bin/ コマンドラインスクリプトです。ほとんどは py.pytranslatorshell.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/ FlowObjSpaceabstract 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 コードをキャッシュファイルとして保持します。

Indices and tables