2012-05-21 2 views
3

Я попытался установить Pygame версии 1.9.1release для PyPy на моем Mac OSX Lion. Я побежал pypy config.py сначала с pypy setup.py install. Я добавил конфигурацию к процессу установки, так как увидел, что он пытается настроить с помощью обычного python (который устанавливается правильно, но вызывает ошибки импорта). Durring процесса установки, существует множество предупреждений, таких как:Установка Pygame в PyPy через Mac

src/overlay.c:44:5: warning: implicit declaration of function 'PyObject_Free' is invalid in C99 [-Wimplicit-function-declaration] 
PyObject_Free ((PyObject*)self); 
^ 

Но она также дала мне 2 аналогичные ошибки:

In file included from src/scale_mmx.c:33: 
src/scale_mmx64.c:424:27: error: invalid instruction mnemonic 'movsxl' 
     asm __volatile__(" /* MMX code for inner loop of X bilinear filter */ " 
         ^
<inline asm>:1:191: note: instantiated into assembly here 
     /* MMX code for inner loop of X bilinear filter */ movl    -36(%rbp),  %ecx;   pxor   %mm0,  %mm0;   1:           movsxl   (%rdi), ... 
                                                    ^~~~~~ 
In file included from src/scale_mmx.c:33: 
src/scale_mmx64.c:499:27: error: invalid instruction mnemonic 'movsxl' 
     asm __volatile__(" /* MMX code for inner loop of X bilinear filter */ " 
         ^
<inline asm>:1:191: note: instantiated into assembly here 
     /* MMX code for inner loop of X bilinear filter */ movl    -36(%rbp),  %ecx;   pxor   %mm0,  %mm0;   1:           movsxl   (%rdi), ... 
                                                    ^~~~~~ 
2 errors generated. 

Это кажется довольно глупо мне, что PyPy застрял на линии, генерирует то, что кажется блочным комментарием на C. И почему его инкапсулированный комментарий в asm и volatile является вне меня. Но это код, который был предоставлен мне и работает в обычном python. Так это ошибка? Или я чего-то не хватает?

ответ

2

Скорее всего, у PyPy есть #defines, отличные от CPython (по хорошим или плохим причинам), и pygame решает использовать что-то еще (на основе плохо продуманного #else с неявными предположениями), который пытается скомпилировать недопустимый C. I ' m просто угадывая, однако, вам нужно будет следить за тем, почему и как тот же код не компилируется на CPython.