問題タブ [pypy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ジェネレーターはRPythonでサポートされていますか?
ジェネレーターはRPythonでサポートされていますか?PyPyのドキュメントで、ジェネレーターはサポートされていないということを読んだだけです。
すべての生成ステップは関数呼び出しで生成されるため、Cのような静的に型付けされた言語に変換するのは簡単なようです。
誰かが理由を説明できますか?または、主題にもう少し光を当てます。私は現在、RPythonセーフコードの記述の基本を学ぼうとしています。
python - fstat()は安全な(サンドボックス化された)操作ですか?
私は現在、サンドボックス化されたPyPyを使用してPythonサンドボックスを作成しています。基本的に、サンドボックスは、代わりにシステムライブラリ呼び出しを指定された関数にマップする「コントローラー」を提供することによって機能します。(セットアッププロセスをウォークスルーする)codespeakにある指示に従った後、デフォルトのコントローラーにはの代替が含まれていないためos.fstat()
、を呼び出すとクラッシュすることに気付きましたopen()
。具体的には、インクルードにpypy/translator/sandbox/sandlib.py
はの定義が含まれていませんdo_ll_os__ll_os_fstat
。
これまでのところ、私はそれを次のように実装しました:
これはうまくいくようです。これは安全ですか?これにより、サンドボックスに穴ができますか?
swig - PyPy-SWIG-QuickFixミックス
PyPyには、特にCPython C APIに関して、いくつかの互換性の制限があります。
プリコンパイルされたSWIGバインディングに付属するQuickFixパッケージを使用しており、PyPyでの使用を検討しています。私はCAPIとSWIGに精通していないので、私の質問は次のとおりです。
- PyPyのCAPI互換性の制限は、SWIGでの動作を妨げますか?理由を説明していただけますか?
- 特にPyPyで動作するには、SWIGバインディングを再コンパイルする必要がありますか?それは可能ですか?どのように?
python - Python実行モデルに対する最近の変更?
Learning Pythonの第3版(2007年後半)の実行モデルに関するセクションを読み直したところ、かなり暫定的な感じがしました。それで、私は第4版(2009年後半)の同じセクションを見て、それが完全に変更されていないことにかなり失望しました。
CPythonを超えてPythonを実行するためのステータスは何ですか?JythonとIronPythonはまだニッチなプロジェクトのようです。他の同様のプロジェクトが出現しましたか?Psycoは、心配することなく使用できるほど十分に固化していますか?多くの人がShedSkinを使用していますか?PyPyの実行が一般的に高速になる時期に関する情報はありますか?
python - サンドボックス化された Pypy でのソケット モジュールの使用
Pypy でサンドボックス化されたサブプロセスが、限定されたプロトコルを使用して親プロセスと通信できるようにしようとしています。
pypy/pypy/translator/sandbox/sandlib.py
Pypy に含まれている のソース コードを確認したところ、ソケットを開く呼び出しをVirtualizedSocketProc
許可するがあるようです。os.open
コードの一部の機能を変更しました (たとえば、限られたポートで TCP 接続を許可するなど)。ただし、ほとんど変更されていません。ただし、コードのインタープリターレベルの部分にあると思われるsocket
存在しないモジュールが必要なため、Pypy のモジュールを実際にインポートすることはできません。_socket
私がやろうとしていることは実現可能ですか?もしそうなら、ソケットモジュールをインポートするにはどうすればよいですか? そうでない場合、他に何ができますか?
python - PyPy C/API アクセス
私は参照ドキュメントを調べてきましたが、PyPy の C API について言及しているものは見つかりません。それは存在しますか?もしそうなら、それは CPython C API と同じですか? PyPy が CPython の上で実行された場合、これは変わりますか?
php - 単一の Web サーバー上の PyPy + PHP
主にPythonでWebアプリケーションを作成するために、Webサーバーをゼロからセットアップしています。Apache+mod_wsgi の代替案を見ると、pypy は、私が自分のアプリに使用しようとしているほとんどすべてのもので実際に非常にうまく機能するようです。PyPy を適切に操作する機会が実際にあったわけではありませんが、サーバーを防弾にする必要がないため、これを使用する絶好の機会だと感じています。
ただし、管理目的で Web サーバー上で実行したい PHP アプリがいくつかあります (PHPPgAdmin など)。Apache のような PHP 互換の Web サーバー内で PyPy を使用できるエレガントなソリューションはありますか? それとも、CherryPy/Paste または他の WSGI サーバーの 1 つを実行し、別のポートで Apache と mod_wsgi を実行して管理サービスを提供する必要がありますか?
python - PyPy は CPython より大幅に遅い
私は自分で作ったキャッシングシステムをテストしてきました。その目的は、Django Web アプリケーションを高速化することです。すべてをメモリ内に格納します。cProfile によると、私のテストのほとんどの時間は QuerySet._clone() 内で費やされており、これは非常に非効率的であることが判明しました (実装を考えると、実際にはそれほど奇妙ではありません)。
PyPy を使用して処理を高速化することに大きな期待を寄せていました。私は64ビットマシンを持っています。しかし、必要なすべてのライブラリをインストールした後、PyPy でコンパイルされたコードは通常の Python コードよりも約 2.5 倍遅く実行されることがわかりました。コードは CPU バウンドです (データベース クエリはまったくないため、IO バウンドはオプションではありません)。1 回のテストは約 10 秒間実行されるので、JIT が開始するにはそれで十分だと思います。私は PyPy 1.5 を使用しています。1 つのメモ - ソースを自分でコンパイルしたわけではなく、64 ビットの Linux バージョンをダウンロードしただけです。
PyPy で実際に CPU を集中的に使用するコードの実行速度が低下する頻度を知りたいです。PyPy が最高の状態で動作するのを妨げる何か間違ったことがあるといいのですが。
編集
正確な cPython 出力:
PyPy 1.5:
Python 2.7:
python - RPythonで静的に入力されるものは何ですか?
RPython(Pythonのサブセット)は静的に型付けされているとよく言われます。(例:ウィキペディア。)
最初は、Pythonにそれをどのように追加するのか疑問に思いassert isinstance(arg1, ...)
、各関数の先頭などにステートメントを追加する要件を追加したのではないかと思いました(しかし、私はそれを本当に信じられませんでした)。
次に、いくつかのRPythonコードを調べましたが、静的に型指定されているようには見えません。多くの場合、コンパイラーは、関数の引数が特定のタイプのみである可能性があることを証明できる可能性がありますが、すべての場合に確実にそうであるとは限りません。
たとえば、これは:のRPython実装ですstring.split
。
RPythonに関するPyPyのドキュメントでは、「変数には最大で1つのタイプの値を含める必要があります」と書かれています。
では、関数の引数も変数としてカウントされますか?または、RPythonはどのような意味で静的に型付けされていますか?それとも、これは実際に誤解されていますか?