Python 2.4.2 でコンパイルエラー
細かいメッセージは忘れました。complex_pow() 内で、"minus uray" は正しくないとか、"==" がタイプミスマッチだとか言われました。
調べてみると
- Py_ADJUST_ERANGE2(X, Y) でエラーが発生していた
- それはpyport.hで定義されているマクロで、内部に "-Py_HUGE_VALUE" の式がある
- pyport.h内で Py_HUGE_VALUE が HUGE_VALUE に define されている
- じゃあいいじゃん、と思いつつ cpp をかけると HUGE_VALUE が __builtin_huge_val にトランスレートされた
- __builtin_huge_val は実は関数だった
で、(SRC)/Include/pyport.h
の 254行を次のように変更するとコンパイルが通りました。
#define Py_HUGE_VAL (__builtin_huge_val())