goo blog サービス終了のお知らせ 

路傍のプログラマ

只のプログラマが綴る愚痴と備忘録

Python 2.6.4, IronPython 2.6 rc2

2009-10-29 11:35:31 | プログラミング
期せずして、PythonとIronPythonがほぼ同時にリリースされたので。

CPythonの方は、2.6.3と比べて(地味ながら)パフォーマンス向上してます。

IronPythonの方は、(あっさりと)Eclipse+PyDevでデバッグのためのインタプリタとして使えるようになってました。

進歩してるなあ。

vc 10 + 自分のコード

2009-10-21 19:54:53 | プログラミング
boostが大丈夫なのに気を良くして、自分のコードをコンパイルしてみます。

boost::bindを使っているところが1箇所、エラー。引数の数が違うとか何とか。

とりあえずboost::bindを使わないように書き換えてみると、何とかOKっぽい。

あちこちにあるswaptimizationもそのうち修正しないとなあー。



vc 10 + boost 1.40.0

2009-10-21 19:21:35 | プログラミング
VC 10(VS 2010のベータ2)を試してます。

結論から言うと、boostは大丈夫、というか対応済み。

boostもVC 10.0向けにコンパイルしなおさないとなー、でもbjamの--toolsetオプションで対応してたっけなー、と思っていたのですが、

どうもすでに対応しているらしく、--toolset=msvc-10.0で大丈夫らしい。

実際やってみると、boost 1.40.0が何の問題もなくコンパイルできました。

あっけない。

公平なベンチマークは難しい

2009-10-13 20:20:34 | プログラミング
タイトルそのままです。

PyPyのサイトにあったベンチマークプログラム

http://paste.pocoo.org/show/143243/

でPsyco v2をベンチマークしてみます。

CPython 2.6.3: 8.41400003433
CPython 2.6.3 + Psyco v2 rev 68363: 6.21200013161

つまり、1.35倍と冴えないのですが、ベンチマークのプログラムに1行、
__slots__ = 'x y z'.split(' ')
をつけ足してやると、

CPython 2.6.3 + Psyco v2 rev 68363, mod: 2.25900006294

となります。つまり、3.7倍。

さらにもう数行書き換えて、無駄なコードを除去してやると、2.15199995041(すなわち3.9倍)と少しだけ向上します。

PyPyだと「4.6倍」だとのことなので、これはこれですごいのですが・・・

__slots__のあるなしで、こんなに違ってしまうとは。

公平なベンチマークって難しいですね。

SharpDevelopでIronPython 2.6のインタプリタを使ってステップ実行

2009-10-05 20:46:10 | プログラミング
IronPythonもそろそろ2.6の正式版がリリースされそう。

SharpDevelopで2.6のコードをステップ実行ってできないとばかり思ってたんですが、別の調べ物をしている途中で、不完全ながらやり方が見つかったので紹介。

以下にある手順でやります。

http://community.sharpdevelop.net/blogs/mattward/archive/2009/05/30/DebuggingIronPythonCode.aspx

・・・ではミもフタもナイので、要点だけ取り出してメモ書き。

・Tools/Options/Debugging/Generalで、一番上の「Just My Code」をチェックする。
・Tools/Options/Tools/Python/Commmandに、IronPythonのexeのパスを入れる。
・プロジェクトを右クリックして出てくるPropertyのDeubgタブで、
Start external programの欄に上と同じexeのパスを入れる。
・同じく、Command line argumentsに「-D ${ProjectDir}¥Program.py」と入れる。

「不完全」と書いたのは、どうもランタイムから投げられた例外がうまく捕まえられないらしく、デバッグできないコードがあるから。

ステップ実行やら、変数ウオッチやらは(試した範囲では)大丈夫みたい。

PyDev大進化

2009-10-02 19:19:09 | プログラミング
PyDevが1.5.0になって、エラーチェックがJava並になっていました!
(といったら言い過ぎですが、恐ろしく進歩しました)。

・使われていないインポートやら変数やら関数を警告
・未定義の名前をエラーに

自分のソースコードをEclipseで見てみると、黄色いやら赤いやら。

PyDevのすばらしさと、自分のヘボさにしばし唖然。

PyDevのサイトも新しくなってるし、
http://pydev.org/
ひょっとすると、商業化を目指してるのかなあ。

Psyco v2をインストール on windows

2009-08-18 10:55:35 | プログラミング
Python使いななら誰でもお世話になっている(と断言)するpsycoですが、

最近v2のベータがリリースされて、ジェネレータが速くなったということなので、早速インストールしてみます。

環境はVista 64bit。Python 2.6.2(32bit、64bit)とVC++ 2008(というか、9というか、1500というか)が入ってます。

(1) まずダウンロード。

http://codespeak.net/svn/psyco/v2/dist/

から適当なダウンローダーで、ごっそりと。

(2) 次に、setup.py。

VC++のコンパイラを使うらしいので、VC++2008の「Visual Studio 2008コマンドプロンプト」を起動して、

そのコンソールから、先にダウンロードしたファイルのうちsetup.pyがあるディレクトリにcdして、

setup.py install

それらしいメッセージが出れば終了です。

途中失敗したところを以下に。

・64bitのPythonでは(当然ながら)インストールできません。

32bitのpython.exeをsetup.pyを実行するときに明示的に指定して、すなわち、
c:¥python26¥python.exe setup.py install
みたいにして回避。

・環境変数の設定が間違っていて、setup.pyが意味不明のメッセージで停止する。

Windowsのエラーメッセージには日本語の文字が入っているので、それを表示しようとしてdistutils.py自体がこけてしまって、訳分からん状態に。

しょうがないので、Lib/distutils\core.pyの169行目を
raise SystemExit, "error: " + str(msg)
から、
raise SystemExit, "error: " + repr(msg)
に書き換え。ようやく意味が分かりました。