2011-03-21 7 views
7

Cython에서 제작 한 코드는 항상 제작 된 Python 코드와 똑같은 코드입니까?Cython 정확도

파이썬 모듈의 이름을 * .pyx로 바꾸어서 Cython 파일을 만드는 경우에만 관심이 있지만, Cython 정적 유형 선언 및 기타 Cython 기능 (있는 경우)의 사용을 다른 독자가 해결하는 데 도움이 될 수 있습니다.

저는 파이썬이 Cython에서 다루는 하위 세트에만 관심이 있습니다.

답변

10

일반적으로 그렇습니다. 물론 bugs (많은 경우 지원되는 Python 하위 집합을 확장하는 경우가 많지만 실제로 생성 된 C 코드가 부정확하게 생성되는 버그는 비교적 드뭅니다.) 약간의 caveats이 필요합니다 (짧은 목록의 단 하나의 항목 만 파이썬 의미론).

순수 Python 모드에서 정적 유형을 추가 할 때 Cython으로 컴파일 되든 Python 코드로 실행 되든간에 차이가 나는 경우가 있습니다. 서명되지 않은 정수가 마음에 와서 (예 : 위의 하나 개의 링크에서 언급 한 바와 같이 n가 서명하고 range(-n, n)이 때문에 비어있는 경우, -n 주위에 포장됩니다)뿐만 아니라 정수 오버 플로우 (파이썬은 abritary (long들에 int의 (C long들)을 촉진 -precision integers)).

+0

답변 해 주셔서 감사합니다. 전문가로부터 듣는 것이 가장 안심할 수 있습니다. Cython 프로젝트에서 일하십니까? BTW, 나는 Cython 프로젝트를 즐긴다. 그것은 내가 찾은 다른 도구가없는 기능을 제공합니다. – Brian

+1

@Brian : 아니요, 저는 Cython에 참여할만큼 멋진 곳은 아닙니다;) 설명서의 또 다른 사용자이자 학생입니다. 개발자에게 물어보고 싶다면 적어도 일부는 [cython-users 메일 링리스트] (http://groups.google.com/group/cython-users)에 참여하십시오. – delnan

+0

저는 Cython 개발자입니다. Python의 회귀는 심각한 버그로 간주 될 수 있습니다. 단점이 있습니다 (특히 명시 적으로 C 유형의 정수를 사용하는 경우). 염두에 두어야합니다. – robertwb