2009-09-03 16 views
10

この奇妙なpythonの動作を引き起こす原因は何でしょうか?ARM CPUを搭載したマシンでの奇妙なPythonの動作

Python 2.6.2 (r262:71600, May 31 2009, 03:55:41) 
[GCC 3.3.4] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> .1 
1251938906.2350719 
>>> .1 
0.23507189750671387 
>>> .1 
0.0 
>>> .1 
-1073741823.0 
>>> .1 
-1073741823.0 
>>> .1 
-1073741823.0 
>>> 

それは0.10.5は、5.1は、0.0は、など。整数が正しく戻って私にエコーされるため、同じ出力が得られますが、小数点を使って何が私に狂気の番号を与えます。

これは、ARM用にコンパイルされたPythonバイナリで、Optware経由でSynology DiskStation 101jにインストールされます。

誰もこのようなことを見たことがありますか?

+0

私はそれを見たことがありませんでしたが、実際にはそれは厄介です! – Mohamed

+0

非常にうごめい!どのように起こっているのですか? – Xolve

+0

Optwareホームページを確認してください。私はfp libでPerlの問題に関する記事を見つけました。 – zxcat

答えて

8

おそらく、間違ったVFPバージョン用にコンパイルされている可能性があります。

ARMにはVFPがなく、代わりにソフトウェアエミュレーションを使用する必要がありますが、pythonバイナリはハードウェアを使用しようとします。


EDIT

インテルのXScale(armv5b)link)であるFW IXP420 BB CPU、上のあなたのDS-101Jのビルド。ハードウェア浮動小数点サポートはありません。そして、armv5bの "b"はビッグエンディアンの略です。 gccはデフォルトでリトルエンディアンコードを生成するため、ビルドに問題がある人もいます。おそらく、これはあなたのソフトウェアFP libの問題です。詳細については、this searchを確認してください。

0

zxcatによると、これはハードウェア浮動小数点と破棄されたソフトフロートライブラリを持たないARM上で実行しているようです。クイック検索では、ARMの変種がDS101jに含まれていませんでした。誰も知っている?

+0

わかりませんが、私は確かにNASボックスにハードウェアFPが表示されることは期待しません。 – bobince

+3

ソリューションにコメントするだけの場合は、新しいソリューションではなくコメントを追加します。 –

関連する問題