翻訳という言葉の意味がわかりません。コンパイルと同じですか?
「翻訳」が意味することは、 The RPython Toolchainで詳しく説明されています。コーディング ガイドとFAQには、より高度な入門情報もあります。
彼らの要約を要約すると:
- 完全な RPython プログラムをコンパイルしてインポートします。
- プログラムを動的に分析し、フロー グラフで注釈を付けます。
- フロー グラフを下位レベルのフロー グラフにコンパイルします。
- コンパイルされたフロー グラフを最適化します。
- コンパイルおよび最適化されたフロー グラフを分析します。
- フローグラフと解析から C ソースを生成します。
- C ソースをコンパイルし、ネイティブ実行可能ファイルにリンクします。
したがって、ステップ 1 は通常の Python コンパイラを使用し、ステップ 7 は通常の C コンパイラ (およびリンカー) を使用し、ステップ 3 と 4 は最適化コンパイラが通常行うことと似ています。しかし、プロセス全体を「コンパイル」と呼ぶのは誤解を招く可能性があります。(また、人々はそれをおそらくシェドスキンが行っていることと似たような意味であると解釈するでしょうが、これは間違いなく正しくありません。)
翻訳で作成された pypy-c は、バイナリの bin/pypy と同じものですか?
最終的にバイナリ ディストリビューションになるのは、翻訳目標でインストール プロセスを実行する場合と基本的に同じです。そうです、goal/pypy-c
そしてbin/pypy
事実上同じものです。
ここでビルド済みの PyPy はソース コードを参照していますか?
いいえ。これはbin/pypy
、バイナリ ディストリビューションのことを指します。ドキュメントにあるように、実際には、CPython を含む任意のgoal/pypy-c
Python 2.6 以降、または以前のビルドの残り物などを使用できます。ただし、トランスレータはおそらく標準の PyPy バイナリ ディストリビューションで最も速く実行されるため、それを使用する必要があります。それ以外のことをする正当な理由があります。