2009-09-03 13 views
10

¿Qué podría causar este extraño comportamiento de pitón?Comportamiento de pitón extraño en la máquina con CPU ARM

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 
>>> 

Se da la misma salida para 0.1, 0.5, 5.1, 0.0, etc .. Los números enteros se hizo eco de nuevo a mí correctamente, pero nada con un punto decimal me da los números de locos.

Este es un binario de python compilado para ARM, instalado a través de Optware en una Synology DiskStation 101j.

¿Alguien ha visto algo así antes?

+0

No lo he visto antes, de hecho es extraño! – Mohamed

+0

muy wiered! ¿cómo está sucediendo? – Xolve

+0

Comprobar la página de inicio de Optware. Encontré allí un artículo sobre problemas de Perl con fp lib. – zxcat

Respuesta

8

Quizás está compilado para la versión incorrecta VFP.

O su ARM no tiene VFP y necesita usar emulación de software en su lugar, pero el binario de python intenta usar hardware.


EDITAR

Su DS-101j Construir sobre FW IXP420 BB CPU, que es Intel XScale (armv5b) (link). No tiene soporte de punto flotante de hardware. Y "b" en armv5b significa Big Endian. Algunas personas tienen problemas de compilación, porque gcc genera un pequeño código endian por defecto. Tal vez este es el problema de su software FP lib. Compruebe this search para más información.

0

Como dijo zxcat, esto parece que se está ejecutando en un ARM sin hardware flotante y una biblioteca de flotación blanda reventada. Una búsqueda rápida no mostró qué variante de ARM se encuentra en el DS101j; ¿nadie sabe?

+0

No sé, pero ciertamente no esperaría ver un hardware FP en una caja NAS. – bobince

+3

Si solo quiere comentar una solución, agregue un comentario, en lugar de una nueva solución. –